倍精度浮動小数点数型【double precision floating point number type】倍精度実数型/double型
概要

「浮動小数点数型」(floating point number type)とは、指数を用いて小数点の位置を可変にすることで、非常に大きな値から非常に小さな値まで一つの型で扱えるようにした数値データ型である。倍精度浮動小数点数型はその中でも64ビットを割り当てる方式であり、C言語やJavaなど多くの言語では「double」という型名で定義されている。
具体的な表現形式は言語仕様により異なるが、標準規格として広く普及しているIEEE 754のbinary64形式では、先頭から1ビットの符号部、11ビットの指数部、52ビットの仮数部の順にデータを格納する。符号部は正負を、指数部は小数点の位置を、仮数部は数値の桁の並びをそれぞれ表す。
仮数部を記録する際は、最上位の桁が常に1になるよう位置を揃える「正規化」という処理が行われ、この先頭の1は省略して記録される。そのため実質的には53ビット分の精度を持つことになり、十進数に換算すると約15~17桁の有効桁数が得られる。表現できる値の範囲は十進数でおよそ-1.79769×10308から1.79769×10308までで、非正規化数を用いればさらに小さな値も扱える。
IEEE 754では通常の数値のほか、正と負の無限大や、演算結果が未定義であることを示すNaNも扱うことができ、0による除算やオーバーフローなどの結果を表現する際に利用される。倍精度浮動小数点数型は科学技術計算や統計処理、金融システムなど、微小な小数や巨大な数値を正確に扱う必要がある場面で広く使われている。一方、コンピュータは二進数で計算を行うため、十進数の「0.1」のような値を正確に表現できず、内部でわずかな丸め誤差が生じる特性がある。このため、誤差が許されない厳密な金額計算などでは、固定小数点数や十進浮動小数点数といった別の数値型が選択される場合もある。