<float.h> - C語言標準庫


float.h中的C標準庫的標頭檔案包含了一組浮點值相關的各種平台相關的常數。這些常數是由ANSI C允許更多的可移植程式提出。之前檢查所有的常數,它是很好的理解浮點數是由以下四個元素:

元件 元件說明
S sign ( +/- )
b base or radix of the exponent representation, 2 for binary, 10 for decimal, 16 for hexadecimal, and so on...
e exponent, an integer between a minimum emin and a maximum emax.
p precision, the number of base-b digits in the significand

上述4個組成部分的基礎上,一個浮點將它的值,如下所示:

floating-yiibai = ( S ) p x be

or

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

庫巨集

下面的值是特定於實現定義#define指令,但這些數值可能沒有任何比這裡給出低。注意,FLT是指為float型別在所有情況下,DBL是指double番,而LDBL指 long double。

巨集 描述
FLT_ROUNDS Defines the rounding mode for floating yiibai addition and it can have any of the following values:
  • -1 - indeterminable

  • 0 - toward zero

  • 1 - to nearest

  • 2 - toward positive infinity

  • 3 - toward negative infinity

FLT_RADIX 2 This defines the base radix representation of the exponent. A base-2 is binary, base-10 is the normal decimal representation, base-16 is Hex.

FLT_MANT_DIG

DBL_MANT_DIG

LDBL_MANT_DIG

These macros define the number of digits in the number (in the FLT_RADIX base).

FLT_DIG 6

DBL_DIG 10

LDBL_DIG 10

These macros define the maximum number decimal digits (base-10) that can be represented without change after rounding.

FLT_MIN_EXP

DBL_MIN_EXP

LDBL_MIN_EXP

These macros define the minimum negative integer value for an exponent in base FLT_RADIX.

FLT_MIN_10_EXP -37

DBL_MIN_10_EXP -37

LDBL_MIN_10_EXP -37

These macros define the minimum negative integer value for an exponent in base 10.

FLT_MAX_EXP

DBL_MAX_EXP

LDBL_MAX_EXP

These macros define the maximum integer value for an exponent in base FLT_RADIX.

FLT_MAX_10_EXP +37

DBL_MAX_10_EXP +37

LDBL_MAX_10_EXP +37

These macros define the maximum integer value for an exponent in base 10.

FLT_MAX 1E+37

DBL_MAX 1E+37

LDBL_MAX 1E+37

These macros define the maximum finite floating-yiibai value.

FLT_EPSILON 1E-5

DBL_EPSILON 1E-9

LDBL_EPSILON 1E-9

These macros define the least significant digit representable.

FLT_MIN 1E-37

DBL_MIN 1E-37

LDBL_MIN 1E-37

These macros define the minimum floating-yiibai value..

例子

下面的例子演示了如何使用幾個在float.h檔案中定義的常數。

#include <stdio.h>
#include <float.h>

int main()
{
   printf("The maximum value of float = %.10e
", FLT_MAX);
   printf("The minimum value of float = %.10e
", FLT_MIN);

   printf("The number of digits in the number = %.10e
", 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