Problema con redondeo
Posted: Wed Jan 01, 2014 12:06 pm
Hola. Tengo un problema desde hace algún tiempo que no consigo depurar:
en mi programa de facturación, cuando hago una venta de 7€, guardo este total como 7,00€, pero la base imponible (calculando un 21% de iva) son 5,7851€. Si lo redondeo a 2 decimales, son 5,79€, y si lo redondeo a 2 decimales a la baja, son 5,78€, pero al volver a aplicarle el iva son 7,01€ o 6,99€, nunca los originales 7,00€. Realmente es solo 1 céntimo, pero no queda bien al hacer un ticket que ponga 5,79€ + iva = 7,01€ cuando realmente cobras 7€ y peor que salga 6,99€ y cobrar 7€. Uso la función round(nVALOR,2) en todo el proceso, en cada cálculo. Y si guardo más decimales, por ejemplo 5,7851€ con el iva son 6,999971€, que son los 7€, pero en la visualización de importes en factura no pueden aparecer esos decimales, solo 2.
No se por donde seguir. Ahora lo que hago es dejarlo con los 7,01€ y cobrar 7€, pero no queda profesional. ¿Alguna idea?
Feliz año 1110 para todos !!!
en mi programa de facturación, cuando hago una venta de 7€, guardo este total como 7,00€, pero la base imponible (calculando un 21% de iva) son 5,7851€. Si lo redondeo a 2 decimales, son 5,79€, y si lo redondeo a 2 decimales a la baja, son 5,78€, pero al volver a aplicarle el iva son 7,01€ o 6,99€, nunca los originales 7,00€. Realmente es solo 1 céntimo, pero no queda bien al hacer un ticket que ponga 5,79€ + iva = 7,01€ cuando realmente cobras 7€ y peor que salga 6,99€ y cobrar 7€. Uso la función round(nVALOR,2) en todo el proceso, en cada cálculo. Y si guardo más decimales, por ejemplo 5,7851€ con el iva son 6,999971€, que son los 7€, pero en la visualización de importes en factura no pueden aparecer esos decimales, solo 2.
No se por donde seguir. Ahora lo que hago es dejarlo con los 7,01€ y cobrar 7€, pero no queda profesional. ¿Alguna idea?
Feliz año 1110 para todos !!!