浮動小数点数型 【floating point number type】
概要
浮動小数点数型(floating point number type)とは、プログラミング言語などが扱う基本的なデータ型の一つで、小数点以下の桁数が可変長の実数を格納することができるもの。多くの言語で整数型と共に数値を表す組み込みデータ型の一つとして採用されている。浮動小数点数型では、数値の正負を表す「符号部」、数値を2進数で表したときの各桁の数字の並びである「仮数部」、小数点の位置を表す「指数部」の組み合わせで値を表現する。仮数に基数(通常は2)を指数乗した値を乗じ、符号を付け加えたものが表現する数値となる。
例えば、「-4.375」は2進数では「-100.011」であり、仮数と指数に分離すると「-1.00011×1010」(値はすべて2進表記)となる。符号は正を0、負を1とすることが多いため、符号部の値は「1」、仮数部の値は「100011」、指数部の値は「10」となる。数値が0の場合は符号と指数は不定となるが、便宜上各部をすべて0としたもの(+0.0×100)を0の表現として扱うことが多い。
格納できる値の範囲は整数型とは異なり、表現可能な桁の長さ(有効数字)と、数の大きさそのもの(指数部の大きさ)がそれぞれ独立に決まっている。例えば、一般的な仕様の単精度浮動小数点数型は、十進数に換算して概ね10の38乗程度までの絶対値の数を表すことができるが、このうち各桁の数字を正確に表せるのは上位6桁程度である。
IEEE 754形式
浮動小数点数型には全体のデータ長や仮数部と指数部のビット数の配分などで様々な形式が存在するが、広く普及している標準規格としてIEEE 754形式が知られる。
全体で16ビット(符号1+指数5+仮数10)の「半精度浮動小数点数型」、32ビット(符号1+指数8+仮数23)の「単精度浮動小数点数型」、64ビット(符号1+指数11+仮数52)の「倍精度浮動小数点数型」、128ビット(符号1+指数15+仮数112)の「四倍精度浮動小数点数型」の4つの形式が定められており、それぞれ表現できる数値の幅の異なる。
実用上は単精度と倍精度がよく用いられ、プログラミング言語や論理回路などでもこの2つに標準で対応しているものが多い。例えば、C言語系の言語では単精度を「float」、倍精度を「double」という型名で表す。