C-standard-library-float-h

提供:Dev Guides
移動先:案内検索

Cライブラリ-<float.h>

C標準ライブラリの float.h ヘッダーファイルには、浮動小数点値に関連するさまざまなプラットフォーム依存定数のセットが含まれています。 これらの定数は、ANSI Cによって提案されています。 よりポータブルなプログラムを作成できます。 すべての定数をチェックする前に、浮動小数点数は次の4つの要素で構成されていることを理解するのが良いです-

Sr.No. Component & Component Description
1

S

記号(+/-)

2

b

指数表現の基数または基数、2は2、10は10、16は16などです…​

3

e

指数、最小* e〜min〜と最大 e〜max〜*の間の整数。

4

p

精度、仮数の基数bの桁数。

上記の4つのコンポーネントに基づいて、浮動小数点の値は次のようになります-

floating-point = ( S ) p x be

or

floating-point = (+/-) precision x baseexponent

ライブラリマクロ

次の値は実装固有であり、#defineディレクティブで定義されていますが、これらの値はここで指定されている値よりも低くなることはありません。 すべてのインスタンスで、FLTは float 型を指し、DBLは double を指し、LDBLは long double を指します。

Sr.No. Macro & Description
1

FLT_ROUNDS

浮動小数点加算の丸めモードを定義し、次の値のいずれかを持つことができます-

  • -1-決定不能
  • 0-ゼロに向かって
  • 1-最も近い
  • 2-正の無限大に向かって *3-負の無限大に向かって
2
  • FLT_RADIX 2*

これは、指数の基本基数表現を定義します。 2進数は2進数、10進数は通常の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進数の最大数(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