Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema con datos decimales

Estas en el tema de Problema con datos decimales en el foro de Visual Basic clásico en Foros del Web. Hola como están? estoy intentando cargar una compra y antes de cargarla controlo todos los datos de la grilla donde voy agregando cada producto que ...
  #1 (permalink)  
Antiguo 15/02/2010, 12:04
mgd
 
Fecha de Ingreso: enero-2009
Mensajes: 129
Antigüedad: 15 años, 3 meses
Puntos: 0
Problema con datos decimales

Hola como están?
estoy intentando cargar una compra y antes de cargarla controlo todos los datos de la grilla donde voy agregando cada producto que tiene esta compra. Controlo el importe y los cálculos de descuento con el monto total etc etc etc
el tema es que declare variables double y también currency es decir probé con los dos tipos. Supongamos estos dos valores


total = cdbl(grilla.textmatrix(fila,2))
importe = cdbl(grilla.textmatrix(fila, 4))

los dos valores son 1256,64
pero al hacer esta compararon me da verdadero es decir que si son distintos, repito si hago esto

msgbox (importe)
msgbox (total)

ambos valores son 1256,64


esta es la comparación

if total <> importe then

end if

entonces hice esto, para que me de 0 ya que los valores son iguales


msgbox (total - importe) pero el resultado es -12154545E
o algo así

Como puedo solucionarlo?
gracias
  #2 (permalink)  
Antiguo 15/02/2010, 13:31
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Problema con datos decimales

Yo, en tu lugar probaria lo siguiente:

msgbox "/" & grilla.textmatrix(fila,2) & "/" & grilla.textmatrix(fila, 4) & "/"

para comprobar que los valores son exactamente iguales, porque , si en lugar de tomar los datos de la grilla, indicas

total = CDbl("1256,64")
importe = CDbl("1256,64")

parece que funciona, por lo que deberías confirmar que los datos son iguales
  #3 (permalink)  
Antiguo 15/02/2010, 19:24
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 15 años
Puntos: 7
Respuesta: Problema con datos decimales

Cuando hagas calculos debes utilizar la funcion val
if val(total) <> importe then

end if

msgbox val(total) - val(importe)

Tambien puedes utilizar round para redondear o format para darle formato a los decimales y me parece que tambien redondea.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:10.