Python舍入问题与价格和税收

时间:2018-01-08 03:11:54

标签: python

我使用一个小的python脚本从html和yaml文件创建我的发票到pdf。这里的问题是,我有一些舍入错误,所以我的客户支付错误的价格。这是我的功能:

pos['total_netto_price'] = pos['netto_price'] * pos['amount']
pos['total_tax'] = pos['total_netto_price'] * (pos['tax_rate'] / float(100))
pos['total_brutto_price'] = pos['total_netto_price'] + pos['total_tax']

当我现在价格0.83€,金额10和19%税必须结果是9.90€。 但凭借我的功能,结果是9.88€。

所以我输了2美分。我知道这是一个典型的舍入问题,但如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

单位价格为0.83,税率为19%,税后价格为0.9877。当然,您不能收取一分钱的分数,因此单个购买单位的价格会上涨到0.99,而客户的价格会上涨13/100分。

对于较大的购买,您显然希望简单地将0.99乘以购买的商品数量,但您不能这样做。如果客户购买了四件商品,那么13/100美分的轻微超额现在就会变成52%/百分之一分,从另一个方面来说就是平衡 - 现在你必须将价格降低而不是 up

正确的计算方法是将单位价格乘以购买的商品数量,然后再征税,然后进行回合。