# float.h

`float.h`定义了浮点数类型 float、double、long double 的一些宏，规定了这些类型的范围和精度。

(1) `FLT_ROUNDS`

宏`FLT_ROUNDS`表示当前浮点数加法的四舍五入方向。

它有以下可能的值。

- -1：不确定。
- 0：向零舍入。
- 1：向最近的整数舍入。
- 2：向正无穷方向舍入。
- 3：向负无穷方向舍入。

（2）`FLT_RADIX`

宏`FLT_RADIX`表示科学计数法的指数部分的底（base），一般总是2。

（3）浮点数类型的最大值

- `FLT_MAX`
- `DBL_MAX`
- `LDBL_MAX`

（4）浮点数类型的最小正值

- `FLT_MIN`
- `DBL_MIN`
- `LDBL_MIN`

（5）两个同类型浮点数之间可表示的最小差值（最小精度）

- `FLT_EPSILON`
- `DBL_EPSILON`
- `LDBL_EPSILON`

（6）`DECIMAL_DIG`

宏`DECIMAL_DIG`表示十进制有效位数。

（7）`FLT_EVAL_METHOD`

宏`FLT_EVAL_METHOD`表示浮点数运算时的类型转换。

它可能有以下值。

- -1：不确定。
- 0：在当前类型中运算。
- 1：float 和 double 类型的运算使用 double 类型的范围和精度求值。
- 2：所有浮点数类型的运算使用 long double 类型的范围和精度求值。

（8）浮点数尾数部分的个数

- `FLT_MANT_DIG`
- `DBL_MANT_DIG`
- `LDBL_MANT_DIG`

（9）浮点数指数部分有效数字的个数（十进制）

- `FLT_DIG`
- `DBL_DIG`
- `LDBL_DIG`

（10）科学计数法的指数部分的最小次幂（负数）

- `FLT_MIN_EXP`
- `DBL_MIN_EXP`
- `LDBL_MIN_EXP`

（11）科学计数法的指数部分的十进制最小次幂（负数）

- `FLT_MIN_10_EXP`
- `DBL_MIN_10_EXP`
- `LDBL_MIN_10_EXP`

（12）科学计数法的指数部分的最大次幂

- `FLT_MAX_EXP`
- `DBL_MAX_EXP`
- `LDBL_MAX_EXP`

（13）科学计数法的指数部分的十进制最大次幂

- `FLT_MAX_10_EXP`
- `DBL_MAX_10_EXP`
- `LDBL_MAX_10_EXP`