さらに、49.99999999999999 * 1.1 が 55.0 に等しいのはなぜですか?
これは浮動小数点演算に関係していると思いますが、なぜこれがこのような単純な合計で発生するのか、そしてなぜ乗算の場合にも当てはまるのかについて、やや困惑しています。
さらに、49.99999999999999 * 1.1 が 55.0 に等しいのはなぜですか?
これは浮動小数点演算に関係していると思いますが、なぜこれがこのような単純な合計で発生するのか、そしてなぜ乗算の場合にも当てはまるのかについて、やや困惑しています。
あなたは正しいです、それは完全に浮動小数点演算に関係しています。多くの 10 進数は、2 進数では一定の精度でしか表現できないため、ここで動作が見られます。これは ruby に限ったことではありません - What every computer scientist should know about floating point reductionを読むことをお勧めします。
お使いのコンピューターは、10 進数ではなく 2 進数で動作します。数値 1.1 は、有限の 2 進数表現で正確に表すことはできないため、必然的に近似値になります。