![]() |
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 |
|
Hola
Y la funcion Round ?. Saludos |
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 |
Gracias a todos por las respuestas.
Hasta ahora lo he solucionado con Round() Investigaré con la opción CAST Un cordial saludo Fita |
La franja horaria es GMT +2. Ahora son las 05:47:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi