通过扩展,为什么49.99999999999999 * 1.1等于55.0?
我认为这与浮点运算有关,但是为什么会出现这么简单的总和,以及为什么对于乘法情况也是如此,我感到有些困惑。
答案 0 :(得分:4)
你是对的,它完全与浮点运算有关。许多十进制数只能表示二进制的一定精度,这就是您在此处看到行为的原因。这不仅限于红宝石 - 我建议阅读What every computer scientist should know about floating point arithmetic。
答案 1 :(得分:3)
您的计算机使用二进制,而不是十进制。数字1.1不能完全以有限二进制表示来表示,因此它必然是近似值。