除法运算产生的结果与 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))

不确定是否有其他方法,但希望这对您有所帮助。