Cライブラリ-<float.h>
ザ・ float.hC標準ライブラリのヘッダーファイルには、浮動小数点値に関連するプラットフォームに依存するさまざまな定数のセットが含まれています。これらの定数はANSICによって提案されています。これらの定数を使用すると、より移植性の高いプログラムを作成できます。すべての定数をチェックする前に、浮動小数点数は次の4つの要素で構成されていることを理解しておくとよいでしょう。
シニア番号 | コンポーネントとコンポーネントの説明 |
---|---|
1 | S 記号(+/-) |
2 | b 指数表現の基数または基数、2進数の場合は2、10進数の場合は10、16進数の場合は16など。 |
3 | e 指数、最小値の間の整数 emin と最大 emax。 |
4 | p 精度、仮数の基数bの桁数。 |
上記の4つのコンポーネントに基づいて、浮動小数点の値は次のようになります。
floating-point = ( S ) p x be
or
floating-point = (+/-) precision x baseexponent
ライブラリマクロ
次の値は実装固有であり、#defineディレクティブで定義されていますが、これらの値はここに示されている値より低くすることはできません。すべての場合において、FLTはタイプを参照することに注意してくださいfloat、DBLは double、およびLDBLは long double。
シニア番号 | マクロと説明 |
---|---|
1 | FLT_ROUNDS 浮動小数点加算の丸めモードを定義し、次のいずれかの値をとることができます-
|
2 | FLT_RADIX 2 これは、指数の基本基数表現を定義します。基数2は2進数、基数10は通常の小数表現、基数16は16進数です。 |
3 | FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG これらのマクロは、数値の桁数を定義します(FLT_RADIXベース)。 |
4 | FLT_DIG 6 DBL_DIG 10 LDBL_DIG 10 これらのマクロは、丸め後に変更せずに表すことができる最大小数点以下の桁数(基数10)を定義します。 |
5 | FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP これらのマクロは、基数FLT_RADIXの指数の最小負の整数値を定義します。 |
6 | FLT_MIN_10_EXP -37 DBL_MIN_10_EXP -37 LDBL_MIN_10_EXP -37 これらのマクロは、基数10の指数の最小の負の整数値を定義します。 |
7 | FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP これらのマクロは、基数FLT_RADIXの指数の最大整数値を定義します。 |
8 | FLT_MAX_10_EXP +37 DBL_MAX_10_EXP +37 LDBL_MAX_10_EXP +37 これらのマクロは、基数10の指数の最大整数値を定義します。 |
9 | FLT_MAX 1E+37 DBL_MAX 1E+37 LDBL_MAX 1E+37 これらのマクロは、最大の有限浮動小数点値を定義します。 |
10 | FLT_EPSILON 1E-5 DBL_EPSILON 1E-9 LDBL_EPSILON 1E-9 これらのマクロは、表現可能な最下位桁を定義します。 |
11 | FLT_MIN 1E-37 DBL_MIN 1E-37 LDBL_MIN 1E-37 これらのマクロは、最小浮動小数点値を定義します。 |
例
次の例は、float.hファイルで定義されているいくつかの定数の使用法を示しています。
#include <stdio.h>
#include <float.h>
int main () {
printf("The maximum value of float = %.10e\n", FLT_MAX);
printf("The minimum value of float = %.10e\n", FLT_MIN);
printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG);
}
次の結果を生成する上記のプログラムをコンパイルして実行しましょう-
The maximum value of float = 3.4028234664e+38
The minimum value of float = 1.1754943508e-38
The number of digits in the number = 7.2996655210e-312