サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
b.hatena.ne.jp/showgotch
なぜか これは、機械語が2進数へ変換される際に、浮動小数点数の誤差が発生するためです。小数点以下の数値は多くの場合、無限小数となります。 小数点以下の数値→2進数へ変換する方法 CSを修めていればご存知方と思いますが、復習します。 小数点以下の数値を2倍する 結果の整数部分を取り出し、それを2進数の桁として記録する 小数部分だけを次のステップに持ち越す 小数部分が0になるか、所定の精度に達するまで1〜3を繰り返す 0.1 × 2 = 0.2 整数部分: 0 小数部分: 0.2 0.2 × 2 = 0.4 整数部分: 0 小数部分: 0.4 0.4 × 2 = 0.8 整数部分: 0 小数部分: 0.8 0.8 × 2 = 1.6 整数部分: 1 小数部分: 0.6 (以下省略) 最終的に0.1は0.0001100110011001100110011....となる。 まとめ この問題の本質は
このページを最初にブックマークしてみませんか?
『showgotchのブックマーク - はてなブックマーク』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く