This question already has answers here:
Is floating point math broken?
(30 个回答)
7年前关闭。
我对这种减法和求和的工作方式有点困惑:
我发现答案是 0.099999999999999645。为什么答案不是 0.1? 尝试使用 decimal 模块 格式化您的结果以显示一组小数位(这不能解决舍入错误):
我还建议阅读 Brian 的回答中的“What Every Computer Scientist should Know About Floating-Point Arithmetic”。
(30 个回答)
7年前关闭。
我对这种减法和求和的工作方式有点困惑:
A = 5
B = 0.1
C = A+B-A
我发现答案是 0.099999999999999645。为什么答案不是 0.1?
最佳答案
这是一个浮点舍入错误。 Python 网站有一个非常好的 tutorial on floating point numbers 解释了这是什么以及为什么会发生。
如果你想要一个确切的结果,你可以:
print "%.2f"%C
我还建议阅读 Brian 的回答中的“What Every Computer Scientist should Know About Floating-Point Arithmetic”。
10-07 23:18