注意:我已经在使用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的特定方法也会有所帮助)
使用decimal
模块获取正确奏效的数学。您可以设置它,以便每个值都会自动使用两个小数点。
>>> decimal.getcontext().prec = 2
>>> decimal.Decimal(1)/decimal.Decimal(3)
Decimal('0.33')
当您使用金钱时,在每个中间计算中失去精度是正常的。