为什么Python舍入不同于Excel舍入?如何得到相同的结果

rjee0c15  于 2023-06-07  发布在  Python
关注(0)|答案(1)|浏览(145)

我遇到了一个Python舍入的问题。
输入值= 3.7145,我在excel中尝试使用

formula: =round(C9/1000,6)

我得到输出= 0.003715,
同样的事情,当我尝试用Python与下面的代码:

Python代码:

number = 3.7145
result = round(number / 1000, 6)
print(result)

输出:

0.003714

如何确保我们得到完全相同的值,因为我的要求是高精度,所以即使是.000001的变化也是不允许的。我已经尝试了同样的与其他数字也在那里我得到相同的价值观在excel和python

Input : 1.0127, 2.3216, 5.4938
Output: 0.001013, 0.002322, 0.005494 (Same in python & excel)
bvhaajcl

bvhaajcl1#

如果你想获得更好的精度,你应该使用Decimal而不是Float

Python代码

from decimal import Decimal

number = Decimal("3.7145")
result = number / 1000
print(round(result, 6))

输出

0.003715

编辑2021.06.05 17:51 UTC

number = Decimal(3.7145)更改为number = Decimal("3.7145")
正如@RonRosenfeld在评论中提到的,将number创建为Decimal(3.7145)包括从3.7145浮点数中获得浮点数的不准确性

相关问题