Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-08-2003
Michael Michael is offline
Miembro
 
Registrado: may 2003
Posts: 13
Poder: 0
Michael Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 05-08-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 05-08-2003
Michael Michael is offline
Miembro
 
Registrado: may 2003
Posts: 13
Poder: 0
Michael Va por buen camino
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?
Responder Con Cita
  #4  
Antiguo 06-08-2003
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:06:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi