我今天花了一个小时试图找出原因
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价值观。