インテル® C++ コンパイラー 14.0 ユーザー・リファレンス・ガイド
IEEE 標準 754 は、浮動小数点表現の値と要件を定めています (例えば基底 2 など)。この標準は、基本と拡張の 2 形式の要件を定め、それぞれの形式について単精度と倍精度の 2 つのワード長を定めています。
インテル® C/C++ コンパイラーは、C および C++ で 10 進の浮動小数点型をサポートしています。10 進の浮動小数点形式は IEEE 754-2008 標準で定義されています。C では、次の 10 進の浮動小数点型をサポートしています: _Decimal32、_Decimal64、および _Decimal128。詳細は、http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1312.pdf (英語) を参照してください。
C++ では、ヘッダーファイル <decimal/decimal> で、decimal32、decimal64、および decimal128 浮動小数点型を定義しています。詳細は、http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2849.pdf (英語) を参照してください。
C++ でこの機能を使用するには、gcc* 4.5 以降が必要です。
C++ の例:
#include <decimal/decimal>
#include <iostream>
int main() {
std::decimal::decimal32 d = 4.7df;
std::cout << decimal_to_long_double(d) << std::endl; return 0; }
10 進の浮動小数点の適切な動作を保証するには、標準ヘッダーをインクルードする前に __STDC_WANT_DEC_FP__ を定義する必要があります。これは、上記の n1312.pdf のセクション 9.1 で、標準の 10 進数のマクロとライブラリー関数は、__STDC_WANT_DEC_FP__ が定義されている場合のみ宣言できると規定されているためです。ライブラリー関数プロトタイプがない場合、実行時に正しくない 10 進の浮動小数点結果になることがあります。
関数 |
簡単な説明 |
|---|---|
fe_dec_feclearexcept() |
サポートされている浮動小数点例外をクリアします。 |
fe_dec_fegetexceptflag |
浮動小数点ステータスフラグの実装定義の表現を格納します。 |
fe_dec_feraiseexcept |
サポートされている浮動小数点例外を発行します。 |
fe_dec_fesetexceptflag |
浮動小数点ステータスフラグを設定します。 |
fe_dec_fetestexcept() |
指定されている浮動小数点例外フラグのサブセットのうち、現在設定されているものを特定します。 |
10 進の浮動小数点例外関数は、fenv.h ヘッダーファイルで定義されています。
バイナリー形式の浮動小数点例外関数については、ISO C99 で説明されています。