問2 丸め誤差の説明

基本情報​技術者試験 令和7年度 公開問題 科目A、全20問のうちの問2。

出典:令和7年度 基本情報技術者試験 公開問題 科目A 問2

浮動小数点形式で表現された数値の演算結果における丸め誤差の説明はどれか。

  1. ア演算結果がコンピュータの扱える最大値を超えることによって生じる誤差である。
  2. イ数表現のけた数に限度があるので,最下位けたより小さい部分について四捨五入や切上げ,切捨てを行うことによって生じる誤差である。
  3. ウ乗除算において,指数部が小さい方の数値の仮数部の下位部分が失われることによって生じる誤差である。
  4. エ絶対値がほぼ等しい数値の加減算において,上位の有効数字が失われることによって生じる誤差である。
答えと解説を開く

正解はイです。

コンピュータは数を決まったけた数で持ちます。計算の結果がそのけた数に収まらないと、いちばん下のけたより小さい部分を四捨五入、切上げ、切捨てのどれかで処理して収めます。このとき元の値とのずれが生じます。これが丸め誤差です。たとえば 1÷3 は 0.3⁠3⁠3… と無限に続くので、どこかのけたで丸めるしかありません。正解はイです。

ほかの選択肢が違う理由

  • ア扱える最大値を超えるのは、あふれ (オーバーフロー) の説明です。
  • ウ大きさの違う数の計算で、小さい方の数の下のけたが失われるのは、情報落ちの説明です。情報落ちは主に加減算で起きます。
  • エほぼ等しい数どうしの引き算などで、上のけたが消えて有効数字が減るのは、けた落ちの説明です。

仕組み

浮動小数点の誤差は 4 つを並べて覚えます。丸め誤差 (下のけたを丸める)、けた落ち (近い数の引き算で上のけたが消える)、情報落ち (大きい数に小さい数を足すと小さい方が消える)、オーバーフロー (大きすぎて表せない) です。

プログラムでお金を扱うとき、0.1 を何度も足すと結果がずれるのは丸め誤差のためです。金額は整数 (円や銭の単位) で持つのが定石です。