最終更新日:2026年8月28日
fe fe-technology computer-system
まず結論
桁落ちは、値がほぼ等しい数同士を減算したときに、上位の有効数字が打ち消し合い、結果の有効桁数が少なくなる現象です。
基本情報技術者試験では、次の4つを発生条件で切り分けます。
| 用語 | 典型的な発生条件 | 試験で見る言葉 |
|---|---|---|
| 桁落ち | 近い値同士の減算 | ほぼ等しい、有効桁数が減る |
| 桁あふれ | 表現可能な範囲を超える | 最大値を超える、オーバーフロー |
| 丸め誤差 | 表現できない下位桁を丸める | 四捨五入、切捨て、切上げ |
| 情報落ち | 大きさが大きく異なる数の加減算 | 小さい数の下位桁が反映されない |
近い値を引く
→ 桁落ち
最大値を超える
→ 桁あふれ
下位桁を丸める
→ 丸め誤差
大きい値に小さい値を足す
→ 情報落ち
直感的な説明
コンピュータは、無限に多くの桁を保持できません。
そのため、数値を限られた桁数で表現すると、計算の途中で情報が失われることがあります。
桁落ちは、よく似た二つの数を引いたとき、先頭の数字がまとめて消えてしまうイメージです。
1.2345678
-1.2345666
----------
0.0000012
二つの数は、先頭から多くの桁が同じです。
減算すると、それらの桁が打ち消し合い、結果に残る有効数字は 1.2 のように少なくなります。
入力:多くの有効数字をもつ
↓ 近い値同士を減算
結果:有効数字が少なくなる
「値そのものが小さくなったこと」ではなく、結果を信頼できる有効桁数が減ったことがポイントです。
定義・仕組み
有効桁数とは
有効桁数は、数値の精度を表す意味のある桁の数です。
例えば、次の値では先頭の0は有効数字に数えません。
0.0000012
意味のある数字は 1 と 2 なので、有効数字は2桁です。
コンピュータの浮動小数点形式では、仮数部に保持できる有効数字の桁数が限られます。
浮動小数点形式の符号部・指数部・仮数部については、浮動小数点形式とは?符号・指数部・仮数部のビット列を読む方法でも整理しています。
桁落ち
桁落ちは、ほぼ等しい値同士を減算したときに起こります。
ほぼ等しい数
- ほぼ等しい数
↓
上位桁が打ち消される
↓
有効桁数が減る
絶対値がほぼ等しく、符号が異なる数を加算する場合も、実質的には近い値同士の減算なので桁落ちが起こることがあります。
1.2345678 + (-1.2345666)
桁あふれ
桁あふれは、演算結果がコンピュータで表現できる最大値を超える現象です。
表現可能な最大値
<
演算結果
例えば、3桁までしか扱えない仕組みで、次を計算する場合です。
900 + 200 = 1100
結果を格納する桁が足りません。
桁あふれは、精度ではなく表現できる範囲の問題です。
丸め誤差
丸め誤差は、表現できる桁数より下の部分を、四捨五入・切捨て・切上げしたときに生じる誤差です。
例えば、小数第3位までしか保持できないとします。
1.23456
↓ 四捨五入
1.235
元の値と、丸めた後の値には差があります。
この差が丸め誤差です。
情報落ち
情報落ちは、非常に大きい数と非常に小さい数を加減算したとき、小さい方の下位桁が結果に反映されなくなる現象です。
12345678 + 0.001
保持できる有効桁数が限られていると、小さい方の 0.001 が結果から消える場合があります。
大きな数
+ 小さな数
↓
小さい数の情報が失われる
科目Aでどう出る?
科目Aでは、用語の定義をそのまま問うだけでなく、現象の説明から用語を選ばせる形で出題されます。
判断するときは、まずどのような演算をしているかを確認します。
桁落ちを選ぶ目印
- 値がほぼ等しい
- 浮動小数点数同士を減算する
- 上位桁が打ち消される
- 有効桁数が大幅に減る
近い値 − 近い値
→ 桁落ち
桁あふれを選ぶ目印
- 最大値を超える
- 表現可能な範囲を超える
- オーバーフローする
範囲を超える
→ 桁あふれ
丸め誤差を選ぶ目印
- 表現できる桁数に限度がある
- 最下位桁より小さい部分を処理する
- 四捨五入、切捨て、切上げを行う
特に、問題文に 「最下位桁より小さい部分」 と 「四捨五入・切上げ・切捨て」 が並んでいれば、丸め誤差と判断しやすくなります。
最下位桁より小さい部分を処理する
→ 丸め誤差
下位桁を丸める
→ 丸め誤差
情報落ちを選ぶ目印
- 大きさが大きく異なる数を加減算する
- 小さい方の数が結果に反映されない
- 一方の数の下位桁が消える
大きい値 + 小さい値
→ 情報落ち
選択肢を切る比較表
| 説明 | 判断 |
|---|---|
| ほぼ等しい値の減算で有効桁数が減る | 桁落ち |
| 計算結果が最大値を超える | 桁あふれ |
| 最下位桁より小さい部分を四捨五入・切上げ・切捨てする | 丸め誤差 |
| 小さい値の下位桁が結果に残らない | 情報落ち |
科目Bでどう使う?
科目Bでは、これらの用語を直接答える問題よりも、小数計算や比較処理の注意として役立ちます。
例えば、次のような比較です。
0.1 + 0.2 == 0.3
浮動小数点数では、内部表現や丸めの影響によって、期待どおりに等しいと判定できない場合があります。
そのため、プログラムでは許容誤差を使って比較することがあります。
|計算結果 - 期待値| < 許容誤差
科目Bでは、細かな数値解析よりも、浮動小数点数は常に完全に正確とは限らないという前提を押さえておくと読みやすくなります。
どんな場面で使う?
これらの誤差は、浮動小数点数を使う計算で注意が必要です。
- 科学技術計算
- センサデータの処理
- 統計計算
- シミュレーション
- 多数の小さな値を繰り返し加算する処理
桁落ちを避ける考え方
桁落ちは、近い値同士を直接引かない式へ変形することで防げる場合があります。
例えば、次の式です。
√(x+1) - √x
x が大きいと、二つの平方根は近い値になります。
分母と分子を有理化すると、次の形に変えられます。
√(x+1) - √x
= 1 / (√(x+1) + √x)
これにより、近い値同士を直接減算せずに計算できます。
ただし、有理化がすべての問題に使えるわけではありません。
近い値同士の減算を避ける形へ式を変える
→ 桁落ちを抑えられる場合がある
よくある誤解・混同
桁落ちと情報落ち
この二つは、どちらも有効な情報が失われるため混同しやすい用語です。
| 比較 | 桁落ち | 情報落ち |
|---|---|---|
| 数の大きさ | ほぼ等しい | 大きく異なる |
| 典型的な演算 | 減算 | 加算・減算 |
| 起きること | 上位桁が打ち消され、有効桁数が減る | 小さい数の下位桁が反映されない |
近い数を引く
→ 桁落ち
大きい数に小さい数を加える
→ 情報落ち
桁落ちと丸め誤差
減算による打消し
→ 桁落ち
有限桁に収める
→ 丸め誤差
桁落ちと桁あふれ
桁落ち
→ 精度の問題
桁あふれ
→ 表現範囲の問題
桁落ちは値が小さくなることではない
減算結果が小さくなるだけで、必ず桁落ちになるわけではありません。
問題は、上位桁が打ち消されたことで、入力値に含まれていた誤差が結果に対して相対的に大きくなり、有効桁数が減ることです。
丸め誤差は計算ミスではない
コンピュータが有限桁で数値を表現する以上、丸め誤差を完全に避けられない場合があります。
計算方法やデータ型を工夫して、誤差の影響を小さくすることが大切です。
確認問題
次のうち、情報落ちの説明として最も適切なものはどれでしょうか。
- ほぼ等しい二つの値を減算し、有効桁数が減少する
- 演算結果が表現可能な最大値を超える
- 表現できない下位桁を四捨五入する
- 大きさが大きく異なる数を加算し、小さい方の値が結果に反映されない
答えを見る
正解は **4** です。 ```text 1 → 桁落ち 2 → 桁あふれ 3 → 丸め誤差 4 → 情報落ち ```まとめ(試験直前用)
- 桁落ちは、ほぼ等しい値同士の減算で有効桁数が減る現象
- 桁あふれは、演算結果が表現可能な範囲を超える現象
- 丸め誤差は、表現できない下位桁を丸めることで生じる誤差
- 情報落ちは、大きさが異なる数の加減算で小さい数の情報が失われる現象
- 「近い値を引く」「最大値を超える」「下位桁を丸める」「大きい値に小さい値を足す」で切り分ける