問題 No.2009
コンピュータの浮動小数点数演算において、ほぼ等しい値を持つ2つの正の数値を減算した際、上位の桁で有効数字が相殺されてしまい、結果として有効桁数が大幅に減少する現象として、適切なものはどれか。
【正解の解説】
桁落ち
例えば「1.2345」から「1.2341」を引くと「0.0004」になり、有効数字が5桁から1桁に激減します。これは、身長170.5cmの人と170.1cmの人が並んだとき、共通の「170cm」の部分が相殺されて、わずかな差しか残らなくなるような状態です。コンピュータの世界でも、非常に近い値の引き算では大切な情報がごっそり消えてしまうため、プログラムを作る際には注意が必要です。
スポンサーリンク
【その他の選択肢の解説】
情報落ち
これは「桁落ち」と非常によく混同される試験の定番の罠です。山ほどの砂山(大きな数)に、たった一粒の砂(小さな数)を投げ入れても全体の高さが変わらないのと同じです。情報落ちは「足し算や引き算で小さい方が消える現象」、桁落ちとは「近い値同士の引き算で上位の桁が消える現象」という決定的な違いがあります。
オーバーフロー
水を入れるコップの容量が決まっているときに、限界を超えて水を注ぎ続けるとあふれ出してしまうのと同じ原理です。今回の問題文にある「有効数字が相殺されて精度が落ちる現象」とは全く異なる仕組みであり、主にメモリやレジスタの表現上限を超えることで発生するエラーや例外として扱われます。
丸め誤差
割り切れない数値を無理やりノートのマス目に収めようと端数を丸めることで生じるズレであり、数値を記憶する段階の限界によって発生します。今回は「計算(減算)」の途中で上位の数字が消える「桁落ち」がテーマであるため、数値を丸めること自体を指す丸め誤差とは現象のメカニズムが異なります。