FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Matematica elemental
Hola a todos, pasa lo siguiente
n : integer; x,result : real; ... n:= trunc(x*10000); { n = 1102500 } result:=n/10000; si agarro mi calculadora y divido 1102500/10000 me da 110.25, sin embargo delphi me da como resultado 110.2 alguien podri adecirme porque? Gracias |
#2
|
|||
|
|||
Hola:
¿Estás seguro de que te da ese resultado, o esa es la forma en que lo visualizas? Prueba de mostrar el resultado mediante FlotToStrF (result, ffGeneral, 15, 4), para verlo con 4 decimales. He hecho la prueba que dices y me aparece 110.25.
__________________
Guía de Estilo |
#3
|
|||
|
|||
tienes razon con esa funcion si sale 110.25, lo probe mostrando un mensage, y ciertamente sale lo que debe ser.
Mi funcion devuelve lo correcto ( lo probe con eun show message ) pero al asignarlo a un campo de una tabla dbase IV ( .DBF ) me lo guarda como 110.20, a pesar de que mi campo esta definido como Numerico longitud 10 decimales 2, y mi mascara esta como 0.00;(0.00). Sabes a que se pueda deber? |
#4
|
|||
|
|||
Tienes el mismo problema que yo. Mira en este mismo foro el hilo: Problemas matemáticos simples.
La cuestión es que la función Trunc no tiene un funcionamiento lógico o por lo menos a mí no me lo parece. En mi caso lo he solucionado sustituyendo la función Trunc por Round. He realizado cientos de pruebas con datos ficticios y reales y siempre me da el resultado correcto. Saludos.
__________________
Rafita. |
|
|
|