Que diferencia hay?? Pq no funciona??

sorona
10 de Marzo del 2006
Buenas tardes,

Tengo el siguiente código y no entiendo pq no hace bien la comparación:

Dim Num1 As Long
Dim Num2 As Long
Dim Res As Long
Dim Res2 As Long


Res = 7
Num1 = 100
Num2 = 0.07


Res2 = CLng(Num1 * Num2) -> da falso
\'Res2 = CLng(100 * 0.07) -> da cierto

If Res = Res2 Then
MsgBox "Son iguales"
Else
MsgBox "No son iguale"
End If


Que difeencia hay entre esta dos operaciones si lo hago de una manera da true y de la otra false, pq??

Res2 = CLng(Num1 * Num2) -> da falso

Res2 = CLng(100 * 0.07) -> da cierto

Mucha Gracias,
Silvia

LLE
10 de Marzo del 2006
Usá variables Double o Single en vez de Long y vas a ver como te da bien

Salu2

www.recursosvisualbasic.com.ar

sorona
10 de Marzo del 2006
Hola,

Muchas Gracias por tu ayuda con Double ya hemos hecho la prueba y no funciona, pero con Single si que va ok, que explicación tiene?? Lo sabes??

Muchas Gracias,
Silvia

LLE
10 de Marzo del 2006
Es que al asignar un numero decimal en un Long, entero etc.., el valor se trunca y se redondea, por ejemplo

Num2 = 1.07

esolo toma como 1

Num2 = 0.07

esto como 0

entonces cuando haces la operacion el resultado no es el esperado

Salu2

mi web de vb
www.recursosvisualbasic.com.ar