除法运算产生的结果与 Python 中的最后一个小数位与常规计算的结果不同
Divide operation yields different result with the last decimal digit in Python, than that of a regular calc
我正在尝试在 python 中执行除法运算,
(3000/365)*365
打印 3000.0000000000005。而实际上这应该 return 3000?
有人可以帮助我了解我在这里缺少什么吗?
编程语言存在浮点精度错误。有时会导致此类问题。
https://docs.python.org/3/tutorial/floatingpoint.html
Is floating point math broken?
如上所说,是因为使用浮点数时的精度问题。
一个解决方案是对结果进行四舍五入:
(round(3000/365*365,2)
如果你不需要浮点数,你可以使用 int
int((round(3000/365*365,2))
不确定是否有其他方法,但希望这对您有所帮助。
我正在尝试在 python 中执行除法运算,
(3000/365)*365
打印 3000.0000000000005。而实际上这应该 return 3000?
有人可以帮助我了解我在这里缺少什么吗?
编程语言存在浮点精度错误。有时会导致此类问题。
https://docs.python.org/3/tutorial/floatingpoint.html
Is floating point math broken?
如上所说,是因为使用浮点数时的精度问题。
一个解决方案是对结果进行四舍五入:
(round(3000/365*365,2)
如果你不需要浮点数,你可以使用 int
int((round(3000/365*365,2))
不确定是否有其他方法,但希望这对您有所帮助。