![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
dato double, una locura
hola amigos del foro tengo un problema que me trae más que loco, Tengo lo siguiente:
var promedio: double y conponente de las rx: llamdo TRxCalcEdit, donde capturo un dato con un entero y un decimal, (ej.: 6.3 ) luego en la variable promedio calculo lo siguiente: Promedio := myround(suma / nnotas) Myround, es función donde aproximo a un decimal el calculo 6.55 a 6.6, ahora viene lo gracioso cuando hago la siguiente pregunta if promedio >= Componen.value then ... me dice que es falso cuando la variable promedio = 6.3 y el componente también, que será, la variable promedio me la traera como 6.29999999999, no se ustedes?
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#2
|
|||
|
|||
Es posible, te convendria redondear tambien el valor del componente asi evitas errores.
Es solo una idea.... |
#3
|
|||
|
|||
el problema con los números reales, es que algunos (en realidad muchos, muchos), no tienen representación exacta en el sistema de bits, por lo que se guarda un valor muy aproximado, pero no exacto.
|
#4
|
|||
|
|||
Muchos problemas de decimales los he solventado cambiando Real o Double por Currency. Prueba a ver que tal
|
#5
|
||||
|
||||
Gracias lo intentaré
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
![]() |
|
|
![]() |
|