我遇到了一个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)
1条答案
按热度按时间bvhaajcl1#
如果你想获得更好的精度,你应该使用
Decimal
而不是Float
Python代码
输出
编辑2021.06.05 17:51 UTC
将
number = Decimal(3.7145)
更改为number = Decimal("3.7145")
正如@RonRosenfeld在评论中提到的,将
number
创建为Decimal(3.7145)
包括从3.7145
浮点数中获得浮点数的不准确性