位置:首页 > 高级语言 > C语言标准库 > <float.h> - C语言标准库

<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