浮動小数点数と誤差
(ふどうしょうすうてんすうとごさ)
この記事はAIが作成しています
本文はAI(Claude)が学習指導要領や公開情報をもとに執筆・生成したものです。内容の正確性には配慮していますが、誤りが含まれる可能性があります。 気になる記述を見つけたら、下部の「誤りを報告する」からお知らせください。
小数を含む実数をコンピュータで扱うための表現方法を「浮動小数点数」と呼ぶ。表現できる桁数が限られているため、計算結果にはわずかな誤差が生じることがある。
背景・歴史
コンピュータの内部では、あらゆる数値が二進法で表現されていますが、限られたビット数の中で、整数だけでなく小数を含む実数も表現する必要があります。実数を扱うための初期の方法には、小数点の位置を固定して扱う「固定小数点数」もありましたが、非常に大きい数や非常に小さい数を同時に扱うには表現できる範囲が狭いという課題がありました。そこで、符号・指数部・仮数部という組み合わせによって、小数点の位置を柔軟に「浮動」させながら実数を表現する「浮動小数点数」の方式が考案され、現在のコンピュータで広く使われる標準的な方法になっています。
なぜこの考え方が使われるようになったのか
浮動小数点数を使うと、非常に大きな数値から非常に小さな数値まで、限られたビット数で幅広く表現できます。しかし、コンピュータが扱えるビット数には限りがあるため、無限に続く小数(例えば0.1を二進法で正確に表そうとすると、循環する無限小数になってしまう)を、有限の桁数で近似的に表現せざるを得ません。この「近似」によって生じるわずかなずれが、浮動小数点数における誤差の根本的な原因です。
もう少し詳しく見てみる
浮動小数点数の計算では、主に次のような誤差が生じることがあります。
- 丸め誤差:無限に続く小数を、限られた桁数に丸めることで生じる誤差。例えば、多くのプログラミング言語では「0.1 + 0.2」を計算しても、正確に「0.3」にならないことがあります。
- 桁落ち誤差:ほぼ等しい2つの数を引き算したとき、有効な桁数が大きく減ってしまうことで生じる誤差。
- 情報落ち誤差:絶対値が非常に大きい数値と非常に小さい数値を足し算・引き算したとき、小さい方の数値の情報が失われてしまうこと。
こうした誤差は、コンピュータの故障やアルゴリズムの間違いではなく、有限のビット数で実数を表現する以上、原理的に避けられない性質です。金額の計算など、誤差が許されない場面では、浮動小数点数ではなく、誤差の生じにくい別の数値の扱い方が使われることもあります。
関連して知っておきたいこと
浮動小数点数の計算は、最終的にCPUの演算回路によって処理されています。CPUが扱えるビット数(精度)と、計算の速さや扱える数値の範囲との間には、常にトレードオフの関係があります。
関連する用語
最終更新日:2026-07-23
誤りを報告する