Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Matematica elemental (https://www.clubdelphi.com/foros/showthread.php?t=2758)

Michael 05-08-2003 19:40:11

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

andres1569 05-08-2003 19:51:54

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.

Michael 05-08-2003 20:11:00

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?

rafita 06-08-2003 10:40:15

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