ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
実数型変数の型の一つ。doubleよりも更に長い浮動小数点数を宣言する。
C/C++の場合は、概ね長倍精度から四倍精度程度の浮動小数点数を表わすことが想定されている。
但し、言語仕様上はビット長は保証されておらず、
float ≦ double ≦ long double ≒ __float80 ≦ __float128
とされている。また実際、多くの実装では128ビット長にはなっていない。GCCでは4.6以降で独自に__float128型を用意した。
printfでは%Lfなどで表わす。
直定数の接尾辞(サフィックス)は、qまたはQである。
ANSI Cの時代より、float.hにおいて以下の9個のマクロ定数が定義されるようになった。これを利用すると、その環境での長さを得ることができる。
また最後の二つ(_から始まるもの)は標準外だが、拡張で、実装によっては存在する。
以下の例の数値は、long doubleが80ビットのBorland C++Builderの場合。但し最後の二つはBorland C++Builderに存在しない。double=long doubleであるMicrosoft Visual C/C++の値は、doubleを参照のこと。
Win64環境であってもdoubleと同じ64ビット長であり、128ビットは現時点では使用できない。
Win32環境、Win64環境共に、80ビット長である。
Microsoftの実装とは互換性がないが、この仕様でx86のFPUの機能(8087の頃から一貫して80ビット)がフルに利用出来る。
確認した範囲では、GCCは80ビット長である。
なお、sizeofで取得できるサイズは、IA-32では96ビット、x64に対応した版/環境では128ビットとなるようである。これは単にアラインメントの調整のためで、FPUの精度が向上したわけではない。
Delphi(Pascal)では、Extended型がほぼ相当する。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます