![]() |
Duda sobre sentencia IF
Hola,
Un saludo a todos antes que nada. Se me presenta el siguiente problema el cual para mi ex muy extraño. Tengo dos variables tipo Double aPrecio y tmpPrecio Cuando yo hago la comparación de si aPrecio = tmpPrecio me encontrado en algunos casos en el que valor es igual en ambas variables y no entra en la condición.
Adjunto una imagen pq creo que eso lo puede explicar mejor. ![]() Pq estara pasando eso ? Gracias. |
Hola, bienvenido al foro.
Una pregunta, los valores de esas variables las obtienes de una base de datos? Salud OS |
Muy posiblemente se deba a que la representación interna de un número de punto flotante casi nunca es exacta, de manera que, aunque parezcan iguales, no lo son.
Busca en la ayuda de Delphi acerca de la función CompareValue. // Saludos |
Gracias por contestar tan rapido :)
El primer valor lo saco de la siguiente manera. aPrecio := StrToFloat("9040"); aPrecio := aPrecio * 0.001; El segundo valor lo sale por medio de una consulta tmpPrecio = Query.FieldByName('Precio').AsFloat; |
Cita:
Saludos. |
Cita:
|
Hola, has la prueba de comparar con la función que te indica el amigo Roman.
Saluditos |
Hola
He hecho esta pequeña prueba
Y si, efectivamente los valores son iguales, lo que me indica que el valor que recuperas de la base no es igual, puede ser que cuando insertas ese valor a la base viene de una operación que contiene mas de dos decimales. Salud OS |
| La franja horaria es GMT +2. Ahora son las 10:42:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi