注意:我已经在使用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特定的方法也会有所帮助)
答案 0 :(得分:2)
使用decimal
module获得正确的数学运算。您可以设置它,以便每个值自动使用两个小数位。
>>> decimal.getcontext().prec = 2
>>> decimal.Decimal(1)/decimal.Decimal(3)
Decimal('0.33')
当你在处理金钱时,在每次中间计算时都会失去精确度。