问题描述
我正在尝试在 python 中执行除法运算,
(3000/365)*365
打印 3000.0000000000005。而实际上这应该返回 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))
不确定是否有其他方法,但希望这会有所帮助。