浮動小数点型

浮動小数点型指定子は、次のカテゴリーに分かれます。

実浮動小数点型

一般型、バイナリー型、浮動小数点型は次の通りです。
  • float
  • double
  • long double
IBM 拡張の始まり10 進浮動小数点型は次のとおりです。
  • _Decimal32
  • _Decimal64
  • _Decimal128
注: _Decimal32Decimal64、および _Decimal128 キーワードを認識するためには、-qdfp オプションを使用してコンパイルする必要があります。詳細については、「XL C/C++ コンパイラー・リファレンス」の -qdfp
IBM 拡張の終わり
実浮動小数点型の大きさの範囲は次の表の通りです。
表 1. 実浮動小数点型の大きさの範囲
範囲
float 約 1.2-38 から 3.438
double、long double 約 2.2-308 から 1.8308
_Decimal32 0.000001-95 から 9.99999996
_Decimal64 0.000000000000001-383 から 9.999999999999999384
_Decimal128 0.000000000000000000000000000000001-6143 から 9.9999999999999999999999999999999996144
浮動小数点定数が長すぎたり、短すぎたりする場合は、言語によって結果は未定義です。

単純な浮動小数点宣言の宣言子は、ID です。浮動定数あるいは整数か浮動小数点数に評価される変数または式を使用して、 単純な浮動小数点変数を初期化します。

IBM 拡張2 進浮動小数点型をサポートするすべての演算子は 10 進浮動小数点型でも使用できます。 ただし、算術式で、10 進浮動小数点型を一般の浮動小数点型または複素数浮動小数点型と混用することはできません。なお明示的な型変換を使用する場合を除きます。 暗黙的な変換は、以下のように適用されます。
  • 10 進浮動小数点型の間の暗黙的変換は必ずサポートされます。
  • 10 進浮動小数点型と整数型との間の暗黙的変換は必ずサポートされます。
  • 10 進浮動小数点型と、一般の浮動小数点型との間の暗黙的変換は、条件付きでサポートされます。 詳細については、浮動小数点変換を参照してください。
IBM 拡張の終わり

複素数浮動小数点型

複素数型指定子は、次のとおりです。
  • float _Complex
  • double _Complex
  • long double _Complex

複素数型の表記要件および位置合わせ要件は、対応する実数型の 2 つのエレメントを含む配列型と同じです。 実数部は、最初のエレメントと等しく、虚数部は 2 番目のエレメントと一致しています。

等価演算子および非等価演算子は、実数型の場合と同じように動作します。 関係演算子には、オペランドとして複素数型を指定できません。

IBM 拡張 C99 および標準 C++ に対する拡張機能として、複素数も単項演算子 ++ (増分)、-- (減分)、および ~ (ビット単位否定) のオペランドとして指定できます。IBM 拡張の終わり