C语言标准库 <float.h>
简介
<float.h>头文件包含了一组与浮点值相关的依赖于平台的宏定义。这些常量让程序更具有可移植性。现在先弄清楚浮点数是由下面四个元素组成的:
组成 | 组成描述 |
---|---|
S | 符号(+或-) |
B | 基数,2表示二进制,10表示十进制,16表示十六进制。 |
E | 指数,一个介于最小值emin和最大值emax之间的整数。 |
P | 精度,基数B的有效位数 |
一个浮点数的组成也就是:浮点数=(符号)精度*基数^指数
宏
下面是这个库中定义的宏:
宏 | 值 | 描述 |
---|---|---|
FLT_ROUNDS | -1或0或1或2或3 |
定义浮点加法的舍入模式。 -1是无法确定 0是趋向于零 1是去最近的值 2是趋向于正无穷 3是趋向于负无穷 |
FLT_RADIX | 2或10或16 |
这个宏定义了指数表示的基数。 2是二进制 10是十进制 16是十六进制 |
FLT_MANT_DIG |
24 | float类型在FLT_RADIX基数中的位数。 |
FLT_DIG |
6 | float类型舍入后不会改变表示的十进制数字的最大值。 |
FLT_MIN_EXP |
-125 | float类型在FLT_RADIX基数中的指数的最小负整数值。 |
FLT_MIN_10_EXP |
-37 | float类型在10基数中的指数的最小负整数值。 |
FLT_MAX_EXP |
128 | float类型在FLT_RADIX基数中的指数的最大整数值。 |
FLT_MAX_10_EXP |
38 | float类型在10基数中的指数的最大整数值。 |
FLT_MAX |
3.4e+38 | float类型最大的浮点值。 |
FLT_EPSILON |
1.19e-7 | float类型可表示的最小有效数字。 |
FLT_MIN |
-3.4e+38 | float类型最小的浮点值。 |
DBL_MANT_DIG |
53 | double类型在FLT_RADIX基数中的位数。 |
DBL_DIG | 15 | double类型舍入后不会改变表示的十进制数字的最大值。 |
DBL_MIN_EXP | -1021 | double类型在FLT_RADIX基数中的指数的最小负整数值。 |
DBL_MIN_10_EXP | -307 | double类型在10基数中的指数的最小负整数值。 |
DBL_MAX_EXP | 1024 | double类型在FLT_RADIX基数中的指数的最大整数值。 |
DBL_MAX_10_EXP | 308 | double类型在10基数中的指数的最大整数值。 |
DBL_MAX | 1.8e+308 | double类型最大的浮点值。 |
DBL_EPSILON | 2.22e-16 | double类型可表示的最小有效数字。 |
DBL_MIN | -1.8e+308 | double类型最小的浮点值。 |
LDBL_MANT_DIG | 64 | long double类型在FLT_RADIX基数中的位数。 |
LDBL_DIG | 18 | long double类型舍入后不会改变表示的十进制数字的最大值。 |
LDBL_MIN_EXP | -16381 | long double类型在FLT_RADIX基数中的指数的最小负整数值。 |
LDBL_MIN_10_EXP | -4931 | long double类型在10基数中的指数的最小负整数值。 |
LDBL_MAX_EXP | 16384 | long double类型在FLT_RADIX基数中的指数的最大整数值。 |
LDBL_MAX_10_EXP | 4932 | long double类型在10基数中的指数的最大整数值。 |
LDBL_MAX | 1.2e+4932 | long double类型最大的浮点值。 |
LDBL_EPSILON | 1.08e-19 | long double类型可表示的最小有效数字。 |
LDBL_MIN | -1.2e+4932 | long double类型最小的浮点值。 |