我今天花了一个小时试图找出原因
return abs(val-desired) <= 0.1
偶尔会回来False
,尽管val
和desired
有绝对差异<=0.1
。经过一番调试,我发现-13.2 + 13.3 = 0.10000000000000142
. 现在我明白 CPU 不能轻易地表示大多数实数,但这是一个例外,因为您可以减去0.00000000000000142
和获取0.1
,所以它可以用 Python 表示。
我在 Intel Core 架构 CPU 上运行 Python 2.7(这是我能够测试的全部)。0.1
尽管无法将算术应用于特定的浮点值,但我很想知道如何存储 的值。val
并且desired
是float
价值观。