インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
IEEE 754-2008 標準は、コンピューター・システムにおける浮動小数点表現の形式と表示方法、および推奨するデータ交換形式を定めたものです。例外条件とそれらの標準処理が定義されています。バイナリー形式の浮動小数点例外関数については、ISO C99 で説明されています。10 進の浮動小数点例外関数は、fenv.h ヘッダーファイルで定義されています。コンパイラーは、C および C++ で 10 進の浮動小数点型をサポートしています。10 進の浮動小数点形式は IEEE 754-2008 標準で定義されています。
C では、次の 10 進の浮動小数点型をサポートしています。
Windows* および Linux* の C++ では、次の 10 進のクラスをサポートしています。
macOS* の C++ では 10 進の浮動小数点はサポートされていません。
10 進の浮動小数点の適切な動作を保証するには、標準ヘッダーをインクルードする前に __STDC_WANT_DEC_FP__ を定義する必要があります。これは、実行時に正しい 10 進の浮動小数点結果が得られるように、10 進マクロおよびライブラリー関数の宣言に必要です。
Linux* の例
#include <iostream> #define __STDC_WANT_DEC_FP__ #include <decimal/decimal> typedef std::decimal::decimal32 _Decimal32; typedef std::decimal::decimal64 _Decimal64; typedef std::decimal::decimal128 _Decimal128; #include <dfp754.h> using namespace std; using namespace std::decimal; int main() { std::decimal::decimal32 d = 4.7df; std::cout << decimal_to_long_double(d) << std::endl; return 0; }
Windows* の例
#include <iostream> #define __STDC_WANT_DEC_FP__ #include <decimal> #include <dfp754.h> using namespace std; using namespace std::decimal; int main() { std::decimal::decimal32 d = 4.7df; std::cout << decimal_to_long_double(d) << std::endl; return 0; }
これらの浮動小数点例外関数を使用して、10 進の浮動小数点演算で発生する例外を検出できます。
関数 |
簡単な説明 |
---|---|
fe_dec_feclearexcept() |
サポートされている浮動小数点例外をクリアします。 |
fe_dec_fegetexceptflag |
浮動小数点ステータスフラグの実装定義の表現を格納します。 |
fe_dec_feraiseexcept |
サポートされている浮動小数点例外を発行します。 |
fe_dec_fesetexceptflag |
浮動小数点ステータスフラグを設定します。 |
fe_dec_fetestexcept() |
指定されている浮動小数点例外フラグのサブセットのうち、現在設定されているものを特定します。 |