Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-02-2011
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Manejo de decimales en campo calculado

Hola a todos...

Tengo varias tablas con un campo "Total" que es calculado.
Al ser calculado se genera automáticamente con un tamaño de 18,6 y esto me esta dando problemas a la hora de redondear los centavos.
Utilizo la función formatFloat('#####0.00', Total.AsFloat) pero como el importe es (x ej) 21.654 el ultimo dígito se trunca.
Esto genera una diferencia, en general, de 1 centavo que no puedo redondear.

alguna idea ?

Desde ya gracias
Responder Con Cita
  #2  
Antiguo 11-02-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Fita.

Código Delphi [-]
  FormatFloat('#####0.000', Total.AsFloat)

Pero creo que más simple usar la propiedad DisplayFormat del campo Total desde el Object Inspector.
O si preferís por código:
Código Delphi [-]
   Total.DisplayFormat:= '#####0.000';

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 11-02-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Y la funcion Round ?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 11-02-2011
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Esto ya lo explique en un hilo mas no se cual. En dichi hilo di la explicacion de que es lo que pasa y por que pasa.

basicamente lo que pasa es que el manejador trata de incrementar la precion para poder alvergar el valor.

Sin mas explicacion esta es la solucion.

Ejemplo
TMONEDA es numerico(18, 4)
CAST(campo1*100/campo1 AS TMONEDA)
CAST(campo1*100/campo1 AS TMONEDA)

Por cada multiplicacion o division se incrementan los decimales del tipo.

Asi es como se debe solucionar por que de los contrario vas a tener mas
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.

Última edición por rastafarey fecha: 11-02-2011 a las 01:32:28. Razón: Error de edicion
Responder Con Cita
  #5  
Antiguo 11-02-2011
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Gracias a todos por las respuestas.

Hasta ahora lo he solucionado con Round()
Investigaré con la opción CAST

Un cordial saludo
Fita
__________________
No te vayas sin irte
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
manejo de decimales de un Float BC++ C++ Builder 3 12-08-2008 17:51:58
Campo Calculado!!! Ledian_Fdez OOP 1 03-10-2007 22:10:01
Ayuda para el manejo de decimales rruffino Varios 3 15-12-2006 21:01:36
Pasar un campo calculado a un campo del mismo DbGrid maravert Conexión con bases de datos 3 12-05-2006 00:31:30
Campo calculado sercornejov MySQL 3 09-08-2005 02:54:35


La franja horaria es GMT +2. Ahora son las 16:18:54.


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