Comparacion de numeros
Publicado por Antoni Masana (168 intervenciones) el 04/04/2007 12:56:14
Utilizo Clipper 5.2 y he comprobado que clipper tienes problemas para comparar por igualdad dos campos numericos cuando los valores son muy grandes (más de siete digitos) y/o con cierto numero de decimales.
Pierde precision y aunque muestra los mismos valores en los campos no es capaz de decir que son iguales.
Por ejemplo:
n_Cant :=987654321.12345
n_Valor:=987654321.12345
IF n_Cant == n_Valor
ALERT("Son iguales")
ENDIF
El ALERT no se ejecuta. La solución que utilice fue esta:
c_Cant :=STR(987654321.12345, 15, 5)
c_Valor:=STR(987654321.12345, 15, 5)
IF c_Cant == c_Valor
ALERT("Son iguales")
ENDIF
Ahora si funciona.
¿ Alguien tiene alguna explicación. ?
Un saludo a todos.
Pierde precision y aunque muestra los mismos valores en los campos no es capaz de decir que son iguales.
Por ejemplo:
n_Cant :=987654321.12345
n_Valor:=987654321.12345
IF n_Cant == n_Valor
ALERT("Son iguales")
ENDIF
El ALERT no se ejecuta. La solución que utilice fue esta:
c_Cant :=STR(987654321.12345, 15, 5)
c_Valor:=STR(987654321.12345, 15, 5)
IF c_Cant == c_Valor
ALERT("Son iguales")
ENDIF
Ahora si funciona.
¿ Alguien tiene alguna explicación. ?
Un saludo a todos.
Valora esta pregunta
0