标准库标头 <cfloat>
来自cppreference.com
标准库标头
注:修订记号中的反斜杠 '/' 意味着此标头被弃用和/或被移除。
此标头原作为 <float.h>
存在于 C 标准库。
此头文件是类型支持库的一部分,特别是它是 C 数值极限接口的一部分。
宏
FLT_RADIX
|
所有三种浮点类型的表示所用的基数(整数底) (宏常量) |
DECIMAL_DIG
(C++11)
|
从 long double 转换到至少有
DECIMAL_DIG
位数字的十进制表示,再转换回 long double
是恒等转换:这是序列化/反序列化 long double
所要求的十进制精度(参阅 std::numeric_limits::max_digits10)
(宏常量) |
FLT_DECIMAL_DIGDBL_DECIMAL_DIGLDBL_DECIMAL_DIG
(C++17)
|
从 float/double/long double 转换到至少有
FLT_DECIMAL_DIG/DBL_DECIMAL_DIG/LDBL_DECIMAL_DIG
位数字的十进制,再转换回原类型是恒等转换:这是序列化/反序列化浮点值所要求的十进制精度(参阅 std::numeric_limits::max_digits10)。分别定义为至少
6、10
和 10,对于
IEEE float 为 9,对于
IEEE double 为 17。
(宏常量) |
FLT_MINDBL_MINLDBL_MIN
|
分别是 float、double 和 long double
的最小规格化正数值 (宏常量) |
FLT_TRUE_MINDBL_TRUE_MINLDBL_TRUE_MIN
(C++17)
|
分别是 float、double 和 long double 的最小正数值
(宏常量) |
FLT_MAXDBL_MAXLDBL_MAX
|
分别是 float、double 和 long double 的最大有限值
(宏常量) |
FLT_EPSILONDBL_EPSILONLDBL_EPSILON
|
分别是 1.0
与 float、double 和 long double
的下一个可表示值的差 (宏常量) |
FLT_DIGDBL_DIGLDBL_DIG
|
保证能在文本 → float/double/long double →
文本的往返转换中保留而不会因舍入或溢出发生改变的的十进制位数(解释参阅 std::numeric_limits::digits10)
(宏常量) |
FLT_MANT_DIGDBL_MANT_DIGLDBL_MANT_DIG
|
分别是能无精度损失地表示成 float、double 和 long double 的基数
FLT_RADIX
的数字位数 (宏常量) |
FLT_MIN_EXPDBL_MIN_EXPLDBL_MIN_EXP
|
分别是能够使 FLT_RADIX
的该整数减一次幂为规格化的 float、double 和 long double 的最小负整数
(宏常量) |
FLT_MIN_10_EXPDBL_MIN_10_EXPLDBL_MIN_10_EXP
|
分别是能够使 10
的该整数减一次幂为规格化的 float、double 和 long double 的最小负整数
(宏常量) |
FLT_MAX_EXPDBL_MAX_EXPLDBL_MAX_EXP
|
分别是能够使 FLT_RADIX
的该整数减一次幂为可表示的有限的 float、double 和 long double 的最大正整数
(宏常量) |
FLT_MAX_10_EXPDBL_MAX_10_EXPLDBL_MAX_10_EXP
|
分别是能够使 10
的该整数减一次幂为可表示的有限的 float、double 和 long double 的最大正整数
(宏常量) |
浮点算术的默认舍入模式 (宏常量) |
|
(C++11)
|
指定进行所有算术运算所用的精度 (宏常量) |
FLT_HAS_SUBNORMDBL_HAS_SUBNORMLDBL_HAS_SUBNORM
(C++17)
|
指定类型是否支持非正规数值:-1
- 不确定,0
- 不支持,1
- 支持。 (宏常量) |
概要
#define FLT_ROUNDS /* 见定义 */ #define FLT_EVAL_METHOD /* 见定义 */ #define FLT_HAS_SUBNORM /* 见定义 */ #define DBL_HAS_SUBNORM /* 见定义 */ #define LDBL_HAS_SUBNORM /* 见定义 */ #define FLT_RADIX /* 见定义 */ #define FLT_MANT_DIG /* 见定义 */ #define DBL_MANT_DIG /* 见定义 */ #define LDBL_MANT_DIG /* 见定义 */ #define FLT_DECIMAL_DIG /* 见定义 */ #define DBL_DECIMAL_DIG /* 见定义 */ #define LDBL_DECIMAL_DIG /* 见定义 */ #define DECIMAL_DIG /* 见定义 */ #define FLT_DIG /* 见定义 */ #define DBL_DIG /* 见定义 */ #define LDBL_DIG /* 见定义 */ #define FLT_MIN_EXP /* 见定义 */ #define DBL_MIN_EXP /* 见定义 */ #define LDBL_MIN_EXP /* 见定义 */ #define FLT_MIN_10_EXP /* 见定义 */ #define DBL_MIN_10_EXP /* 见定义 */ #define LDBL_MIN_10_EXP /* 见定义 */ #define FLT_MAX_EXP /* 见定义 */ #define DBL_MAX_EXP /* 见定义 */ #define LDBL_MAX_EXP /* 见定义 */ #define FLT_MAX_10_EXP /* 见定义 */ #define DBL_MAX_10_EXP /* 见定义 */ #define LDBL_MAX_10_EXP /* 见定义 */ #define FLT_MAX /* 见定义 */ #define DBL_MAX /* 见定义 */ #define LDBL_MAX /* 见定义 */ #define FLT_EPSILON /* 见定义 */ #define DBL_EPSILON /* 见定义 */ #define LDBL_EPSILON /* 见定义 */ #define FLT_MIN /* 见定义 */ #define DBL_MIN /* 见定义 */ #define LDBL_MIN /* 见定义 */ #define FLT_TRUE_MIN /* 见定义 */ #define DBL_TRUE_MIN /* 见定义 */ #define LDBL_TRUE_MIN /* 见定义 */