Visual Basic - redondear mas

Life is soft - evento anual de software empresarial
 
Vista:

redondear mas

Publicado por pp (1 intervención) el 05/12/2006 21:42:06
hola saque este codigo de la web pero me da error me dice SUBINDICE FUERA DEL INTERVALO que puede ser??????
Dim tmp() as string
Dim valor as string
valor = tu textbox.text
tmp = split(valor, ".")
' validas
if CInt(tmp(1)) > 1 and CInt(tmp(1)) <= 99 then
tmp(0) = Cstr(Cint(tmp(0)) + 1)
tmp(1) = "00"
end if
' y lo vuelves a unir
valor = tmp(0) & "." & tmp(1)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:redondear mas

Publicado por Ayudante (25 intervenciones) el 05/12/2006 22:26:43
El problema puede ser con el elemento 1 del arreglo tmp(), ya que si el textbox no contiene el "." que usas con la función Split, sólo te creará UN elemento para tmp() (el elemento 0).
Supongo que el textbox tiene algun contenido numérico, pero no tiene ".", por eso no te crea el elemento 1. Prueba así, a ver si no te da el error:

valor = "123.56" ' Debe llevar punto, según tu ejemplo con el Split.
tmp = Split(valor, ".")
' validas
if CInt(tmp(1)) > 1 and CInt(tmp(1)) <= 99 then
tmp(0) = Cstr(Cint(tmp(0)) + 1)
tmp(1) = "00"
end if
' y lo vuelves a unir
valor = tmp(0) & "." & tmp(1)

El contenido de la variable "valor" será 124.00
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redondear mas

Publicado por AlbertoV (200 intervenciones) el 05/12/2006 22:53:03
Cuando dimensionás una variable con paréntesis vacíos, es porque no sabes cuantos elementos va a tener. Una vez que en el código lo has averiguado (supongamos 50) tienes que mandar "Redim tmp(50) as string".
Hay algunas variantes opcionales para Redim, consultá la ayuda sobre ella.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redondear mas

Publicado por Alex (40 intervenciones) el 05/12/2006 23:37:41
Os gusta complicaros la vida. Para redondear un número hacia arriba solo teneis que poner esto:

Dim x As Double
x = Text1.Text
If x > Fix(x) Then x = Fix(x) + 1

parece sencillo, no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar