在Python中,除法运算的最后一位小数产生的结果与常规计算的结果不同



我正试图在python中执行除法运算,(3000/365)*365它打印3000.00000000000005。而实际上这应该返回3000?

有人能帮我理解我在这里错过了什么吗?

编程语言存在浮点运算错误。有时会引起这种问题。

https://docs.python.org/3/tutorial/floatingpoint.html

浮点数学坏了吗?

如上所述,这是因为使用浮点时的精度。

一个解决方案是将结果四舍五入:

(round(3000/365*365,2)

如果你不想要浮动,你可以使用int

int((round(3000/365*365,2))

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

最新更新