向用户显示包括货币计算在内的总金额

时间:2012-10-17 16:27:45

标签: python django math currency

注意:我已经在使用decimal.Decimal

当您需要以下列粗略样式输出时,为最终用户执行和显示计算的最佳方法是什么:

Item - £ 70.10 
Item - £  5.67
Item - £ 10.33

--------------
Total  £ 86.10

我小时候总是把数学教给你在最后答案之前没有回合,否则你会失去精确度,但在这种情况下,如果你不这样做,看起来我们有计算错误。因为显示器后面的计算与用户从显示给他们的数字不一样。

EG:

My app will be doing: 70.1034 + 5.6693 + 10.333333333 = 86.1060333 (86.11 2dp)

My end user will be doing as above: 70.10 + 5.67 + 10.33 = 86.10

因此我似乎不正确。克服这个问题的最佳方法是什么? (我的意思是一般,但python特定的方法也会有所帮助)

1 个答案:

答案 0 :(得分:2)

使用decimal module获得正确的数学运算。您可以设置它,以便每个值自动使用两个小数位。

>>> decimal.getcontext().prec = 2
>>> decimal.Decimal(1)/decimal.Decimal(3)
Decimal('0.33')

当你在处理金钱时,在每次中间计算时都会失去精确度。