0

重複の可能性:
なぜ 6.84 - 3.6 == 3.2399999999999998なのか

さらに、49.99999999999999 * 1.1 が 55.0 に等しいのはなぜですか?

これは浮動小数点演算に関係していると思いますが、なぜこれがこのような単純な合計で発生するのか、そしてなぜ乗算の場合にも当てはまるのかについて、やや困惑しています。

4

2 に答える 2

4

あなたは正しいです、それは完全に浮動小数点演算に関係しています。多くの 10 進数は、2 進数では一定の精度でしか表現できないため、ここで動作が見られます。これは ruby​​ に限ったことではありません - What every computer scientist should know about floating point reductionを読むことをお勧めします。

于 2012-08-09T03:59:49.573 に答える
3

お使いのコンピューターは、10 進数ではなく 2 進数で動作します。数値 1.1 は、有限の 2 進数表現で正確に表すことはできないため、必然的に近似値になります。

于 2012-08-09T03:59:01.647 に答える