<cfloat> (float.h)
头文件:
<cfloat> (float.h)
浮点类型的特性
这个头文件为特殊系统和编译器的实现描述了浮点类型的特征.
一个浮点数包含四个元素:
- 一个标志(a sign):正或负;
- 一个基数(a base):这表示一串不同的数字能够被一个个单一的数字所表示(2 就是二进制(binary),10就是十进制(decimal),16就是十六进制(hexadecimal)...);
- 一个有效数(a significand):这是一系列前面所谈到的基数的数字,在这一系列中数字的位数就是众所周知的精度;
- 一个指数(an exponent):它代表着有效数字的偏移量,用下面的方式影响着其值:
![](https://images2015.cnblogs.com/blog/861353/201601/861353-20160130181112036-1738352367.jpg)
宏常量
下面的表格显示了这个头文件中定义的不同的变量的名称和所有实现的最小值最大值
(具体的实现可能有的值比这个大或者小 按照说明):
当一组宏存以FLT_,DBL_和LDBL_为前缀时,以FLT_开头的适用于float,以DBL_开头的适用于double,以LDBL_开头的适用于long double;
名称 | 值 | 代表 | 表示 |
FLT_RADIX | 2或者更大 | 基数 (radix) |
所有浮点数类型的基数 |
FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG |
尾数的位数 (MANTissa DIGits) |
有效数的精度,符合有效数字的位数 | |
FLT_DIG DBL_DIG LDBL_DIG |
6 或者更大 10 或者更大 10 或者更大 |
精度 (DIGits) |
带十进制的数能够转化为一个浮点数并且将其再次转化回来时不改变整数数字 |
FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP |
最小的指数 | 用于生成一个标准化的浮点数指数的最小负整数值 | |
FLT_MIN_10_EXP DBL_MIN_10_EXP LDBL_MIN_10_EXP |
-37 或者更小 -37 或者更小 -37 或者更小 |
最小以10为基数的指数 |
用于生成一个标准浮点数的十进制指数表达式 的最小负整数 |
FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP |
最大的指数 | 用于生成一个标准化的浮点数指数的最大整数值 | |
FLT_MAX_10_EXP DBL_MAX_10_EXP LDBL_MAX_10_EXP |
37 或者更大 37 或者更大 37 或者更大 |
最大以10为基数的指数 |
用于生成一个标准浮点数的十进制指数表达式 的最大整数 |
FLT_MAX DBL_MAX LDBL_MAX |
1E+37 或者更大1E+37 或者更大1E+37 或者更大 |
最大数 | 表示最大有限的浮点数 |
FLT_EPSILON DBL_EPSILON LDBL_EPSILON |
1E-5 或者更小1E-9 或者更小1E-9 或者更小 |
EPSILON :) |
能够表示1和最小值的差大于1 |
FLT_MIN DBL_MIN LDBL_MIN |
1E-37 或者更小1E-37 或者更小1E-37 或者更小 |
最小数 | 表示最小有限的浮点数 |
FLT_ROUNDS | 舍入方式 |
舍入行为,可能的值: -1:未确定的 0:向0舍入 1:四舍五入 2:向正无穷 3:向负无穷 *适用于所有浮点类型(float,double和long double) |
|
FLT_EVAL_METHOD | 赋值方式 |
赋值格式的属性,可能的值: -1:未确定的 0:赋值类型的范围和精度 1:赋值时将float和double当作double, long double 当作long double 2:赋值时所有都当作long double,其它负数都表示为实现的定义(implementation-defined)行为 *适用于所有浮点类型 |
|
DECIMAL_DIG | 小数精度 |
可以将一个十进制数转化一个浮点类型的数字, 并且再次转为到与原来一样的数字时不丢失精度 |
通用性
FLT_EVAL_METHOD 和DECIMAL_DIG 是在符合C99标准的库中定义的或者只在符合C11的库中
请参阅
<climits> (limits.h) 整数类型的大小
/*
第一次修改时间:2016年1月30日 20:32:35
*/