
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
0.01をコンピュータ内部で表現した値を100回足しても1にならなかった原因の誤差を選ぶ問題。0.01は2進数では循環小数となり、有限桁で表現するときに生じる丸め誤差が原因である。
10進数の小数を2進数で表現するときに生じる誤差の種類を区別する問題。
① 誤差の名前: 丸め誤差=有限の桁に収めるために丸めて生じる、情報落ち=大きな数に小さな数を足して小さい方が消える、桁落ち=近い数の引き算、打切り誤差=無限の計算を途中でやめる
② 0.01は2進数で循環小数になり、丸めて保存される → その誤差が100回分たまる
③ ①
0.01は、2進数では循環小数になり、有限のビット数で表現するときには、どこかで打ち切って(最も近い値に丸めて)保存するため、わずかに誤差をもった値になる。この誤差(丸め誤差)が、100回の加算で累積し、結果が、ちょうど1にならない。したがって①が最も適切である。
0.1や0.01は2進数で有限小数にならず、丸め誤差を含む。そのため、浮動小数点数の等値比較や、累積加算には注意が必要。
キーワード: 丸め誤差、浮動小数点、2進数、循環小数、数値計算、誤差、情報工学部門