PDA

Ver la Versión Completa : evitar el redondeo de cantidad monetarias


@-Soft
06-02-2004, 13:28:52
hola


he terminado un modulo de cotizaciones y necesito saber como puede evitar que se redondee una cantidad que tengo.

ejemplo
-------------------------------------------------------------------------
cant.----codigo-----descripcion----------------precio----importe---itbis---
-------------------------------------------------------------------------
--001----000375---E-ARTICULO EXCENTO--------1.00-------1.00-----0.00
--001----000200-----TAZA DE CRISTAL----------1.00-------1.00-----0.12
-------------------------------------------------------------------------
EXCENTO 0.97----------------------------------------- MONTO-----2.00
GRAVADO 0.97----------------------------------------DESC.3%-----0.06
-----------------------------------------------------SUB TOTAL-----1.94
------------------------------------------------------ITBIS 12%-----0.12
----------------------------------------------------------TOTAL-----2.05
-------------------------------------------------------------------------

como pueden ver el 12% de 1 es 0.12 pero si le aplico un 3% de descuento a 1 me queda 0.97 y si le aplico un 12% no puede ser 0.12 sino 0.1164 tomando los ultimos 2 decimales y sin redondeo podria decir 0.11 y como ya saben en cantidades monetarias pequeñas no significa nada pero si esta suma crece desmesuradamente habra diferencias y esto puede causar problemas con los clientes.

otra cosa esta prueba se realizo con el sistema de punto de ventas Supermarket y si da 0.11 como debe ser y cuando la realice en el modulo de cotizaciones me da 0.12 es decir redondeando 0.1164 me da 0.12.

Nota: Itbis es lo mismo que el IVA y existe lo que articulos excentos del Itbis y articulos grabados de itbis y si hay articulos excento no se puede aplicar el itbis al sub total de la cotizacion.

P.D. utilizo Paradox, BDE y Delphi 6 con M$ Guindoes 98.

Saludos

__cadetill
06-02-2004, 14:28:29
Pues, por mucho que en Supermarket consideren el redondeo de 0.1164 = 0.11, lo correcto es 0.12

No obstante, si quieres truncar a 2 decimales (que por lo que veo es lo que hace Supermarket) puedes hacer algo como


Trunc(0.1164 * 100) / 100

@-Soft
06-02-2004, 19:46:35
hola

yo creo que si, pero esa es la condicion que me han puesto y no quiero quedar mal.

pero lo que yo quiero es tomar el valor del impuesto sin redondear, es decir, si el 12% de 0.97 es 0.1164 que no lo redondee a 0.12 sino que se quede en 0.11.

__cadetill
06-02-2004, 20:24:00
Pues te remito al código del mensaje anterior ;)