![]() |
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 |
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. |
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? |
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. |
| La franja horaria es GMT +2. Ahora son las 04:00:45. |
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