0

可能重复:
为什么 6.84 - 3.6 == 3.2399999999999998

通过扩展,为什么 49.99999999999999 * 1.1 等于 55.0?

我认为这与浮点算术有关,但我有点困惑为什么会发生这种简单的求和,以及为什么乘法的情况也是如此。

4

2 回答 2

4

你是对的,这完全与浮点运算有关。许多十进制数字只能以一定的精度表示为二进制,这就是您在此处看到行为的原因。这不仅限于 ruby​​ - 我建议阅读每个计算机科学家都应该知道的关于浮点运算的知识。

于 2012-08-09T03:59:49.573 回答
3

您的计算机以二进制而不是十进制工作。数字 1.1 不能以有限的二进制表示形式精确表示,因此它必然是一个近似值。

于 2012-08-09T03:59:01.647 回答