---
title: "丸め誤差・情報落ち・桁落ちとは？浮動小数点演算の誤差を切り分ける【基本情報技術者試験】"
description: "丸め誤差を「表現できる桁数に限りがあるため、切捨て・切上げ・四捨五入で生じる誤差」として整理し、情報落ち、桁落ち、オーバーフローとの違いをFE試験で切れるように解説します。"
last_modified_at: "2026-07-11"
canonical_url: "https://stemtazoo.github.io/fe/floating-point-errors/"
section: "fe"
---

## まず結論

丸め誤差とは、**数値を有限の桁数で表すときに、切捨て・切上げ・四捨五入などを行うことで生じる誤差**です。

基本情報技術者試験では、浮動小数点演算の誤差を次のように切り分けます。

| 用語 | ざっくり | 判断の合図 |
|---|---|---|
| 丸め誤差 | 表せない桁を丸めることで生じる誤差 | 切捨て、切上げ、四捨五入、有限桁 |
| 情報落ち | 大きい数と小さい数の演算で、小さい数が反映されにくい | 大きい数 + 小さい数 |
| 桁落ち | 近い値同士の引き算で、有効桁が減る | ほぼ等しい数の減算 |
| オーバーフロー | 扱える最大値を超える | 最大値を超える、あふれる |

試験で **「けた数に限度があり、最下位けたより小さい部分を四捨五入・切上げ・切捨てする」** と説明されたら、丸め誤差を選びます。

## 直感的な説明

丸め誤差は、数字を入れる箱の桁数が足りないときに起こります。

例えば、次の値を考えます。

```text
1 ÷ 3 = 0.333333333...
```

本当は小数がずっと続きます。

しかし、コンピュータが小数3桁までしか表せない場合、次のように持つことになります。

```text
0.333
```

このとき、本来の値との差が出ます。

```text
0.333333333...
と
0.333
の差
→ 丸め誤差
```

つまり、丸め誤差は **本当の値をそのまま全部は表せないため、近い値に丸めたことで出る差** と考えると分かりやすいです。

## 定義・仕組み

コンピュータでは、数値を表すために使えるビット数や桁数に限りがあります。

そのため、すべての実数を正確に表せるわけではありません。

例えば、10進数では簡単に見える値でも、2進数では有限桁で表せないことがあります。

有限桁に収めるために、余分な桁を次のように処理します。

| 処理 | 意味 |
|---|---|
| 切捨て | 入りきらない部分を捨てる |
| 切上げ | 入りきらない部分を見て上の値にする |
| 四捨五入 | 一定の基準で近い値に丸める |

この処理によって、本来の値とコンピュータ内部で表された値に差が生じます。

この差が丸め誤差です。

このテーマは、基本情報技術者試験の「データ表現」や「コンピュータシステム」と関係する内容です。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 情報落ち・桁落ちとの違い

丸め誤差、情報落ち、桁落ちは、どれも浮動小数点演算の誤差として出やすい用語です。

ただし、起きる場面が違います。

| 用語 | 起きやすい場面 | 例のイメージ |
|---|---|---|
| 丸め誤差 | 表せる桁数を超えた部分を丸める | 0.333333... を 0.333 にする |
| 情報落ち | 大きい数と小さい数を足す | 1.234 + 0.000123 で小さい値が反映されない |
| 桁落ち | ほぼ等しい数を引く | 1.2345678 - 1.2345666 で有効桁が減る |

覚え方は次の通りです。

```text
丸め誤差
→ 丸めるから出る

情報落ち
→ 小さい情報が落ちる

桁落ち
→ 近い値を引いて有効桁が落ちる
```

特に、情報落ちと桁落ちは混同しやすいです。

```text
大きい数 + 小さい数
→ 情報落ち

近い数 - 近い数
→ 桁落ち
```

## オーバーフローとの違い

オーバーフローは、丸め誤差とは別の種類の問題です。

オーバーフローは、**演算結果がコンピュータで扱える最大値を超えたとき** に起こります。

```text
扱える最大値を超える
→ オーバーフロー
```

丸め誤差は「入りきらない細かい桁を丸める」話です。

オーバーフローは「値そのものが表現範囲を超える」話です。

```text
細かい桁を丸める
→ 丸め誤差

最大値を超える
→ オーバーフロー
```

## 科目Aでどう出る？

科目Aでは、浮動小数点演算の誤差の説明を選ぶ問題として出題されやすいです。

判断するときは、次の表で切ります。

| 問題文の表現 | 選びたい用語 |
|---|---|
| 切捨て・切上げ・四捨五入で生じる | 丸め誤差 |
| 表現できる桁数に限度がある | 丸め誤差 |
| 最大値を超える | オーバーフロー |
| 大きい数と小さい数の演算で小さい数が無視される | 情報落ち |
| ほぼ等しい数の加減算で上位の有効数字が失われる | 桁落ち |

似た選択肢は、次のように切ります。

| 選択肢の方向性 | 判断 |
|---|---|
| 最大値を超えることで生じる | オーバーフロー |
| 有限桁で表すために、切捨て・切上げ・四捨五入で生じる | 丸め誤差 |
| 大きい数と小さい数の演算で、小さい数の下位が失われる | 情報落ち |
| ほぼ等しい数の加減算で、上位の有効数字が失われる | 桁落ち |

決め手は、**四捨五入・切上げ・切捨て** です。

```text
四捨五入・切上げ・切捨て
→ 丸め誤差
```

## 科目Bでどう使う？

科目Bで、丸め誤差などの用語を直接選ばせる問題は多くありません。

ただし、プログラムやアルゴリズムの問題で、浮動小数点数を扱うときの注意として役立ちます。

例えば、次のような比較です。

```text
0.1 + 0.2 == 0.3
```

浮動小数点数では、内部表現の都合で、期待通りに等しいと判定できない場合があります。

そのため、科目Bのプログラム読解では、次のような見方が大切です。

```text
小数を完全に正確に表せるとは限らない
計算結果をそのまま等号比較すると危険な場合がある
許容誤差を考えることがある
```

科目Bでは、細かい数値解析よりも、**コンピュータの数値表現には限界がある** という前提を押さえておくと読みやすくなります。

## よくある誤解・混同

浮動小数点演算の誤差では、次の混同がよく起こります。

| 混同 | 正しい切り分け |
|---|---|
| 丸め誤差とオーバーフローを同じだと思う | 丸め誤差は桁を丸める。オーバーフローは最大値を超える |
| 情報落ちと桁落ちを同じだと思う | 情報落ちは大きい数と小さい数。桁落ちは近い数の引き算 |
| 丸め誤差は整数だけの問題 | 小数や浮動小数点で特に意識する |
| 浮動小数点ならすべての小数を正確に表せる | 表せるビット数に限りがあり、誤差が出ることがある |
| 誤差が出るなら計算できない | 誤差の性質を理解して扱うことが大切 |

## まとめ（試験直前用）

- 丸め誤差は、有限桁に収めるために切捨て・切上げ・四捨五入をして生じる誤差
- 決め手は「四捨五入」「切上げ」「切捨て」「有限桁」
- 情報落ちは、大きい数と小さい数の演算で小さい数が反映されにくい現象
- 桁落ちは、ほぼ等しい数の引き算で有効桁が減る現象
- オーバーフローは、演算結果が扱える最大値を超える現象
- 科目Aでは用語の説明を切る、科目Bでは小数計算や等号比較の注意として見る

## 関連記事

浮動小数点や数値表現は、ビット列と誤差を分けて整理すると覚えやすくなります。

- [浮動小数点形式とは？符号・指数部・仮数部のビット列を読む方法](https://stemtazoo.github.io/fe/floating-point-format/)
- [16進小数の変換とは？4ビット対応で効率よく解く方法](https://stemtazoo.github.io/fe/hexadecimal-fraction-conversion/)
