向用户显示总金额,包括金钱计算



注意:我已经在使用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')

当您使用金钱时,在每个中间计算中失去精度是正常的。

最新更新