◐ Shell
clean mode source ↗

标准库标头 <cfloat> - cppreference.com

来自cppreference.com

此标头原作为 <float.h> 存在于 C 标准库。

此头文件是类型支持库的一部分,特别是它是 C 数值极限接口的一部分。

FLT_HAS_SUBNORMDBL_HAS_SUBNORMLDBL_HAS_SUBNORM

(C++17)(C++26 弃用)

指定类型是否支持非正规数值:-1 - 不确定,0 - 不支持,1 - 支持。
(宏常量) [编辑]
所有三种浮点类型的表示所用的基数(整数底)
(宏常量) [编辑]

FLT_MANT_DIGDBL_MANT_DIGLDBL_MANT_DIG

分别是能无精度损失地表示成 floatdoublelong double 的基数 FLT_RADIX 的数字位数
(宏常量) [编辑]

FLT_DECIMAL_DIGDBL_DECIMAL_DIGLDBL_DECIMAL_DIG

(C++17)

float/double/long double 转换到至少有 FLT_DECIMAL_DIG/DBL_DECIMAL_DIG/LDBL_DECIMAL_DIG 位数字的十进制,再转换回原类型是恒等转换:这是序列化/反序列化浮点值所要求的十进制精度
(宏常量) [编辑]

DECIMAL_DIG

(C++11)(C++26 弃用)

long double 转换到至少有 DECIMAL_DIG 位数字的十进制表示,再转换回 long double 是恒等转换:这是序列化/反序列化 long double 所要求的十进制精度
(宏常量) [编辑]

FLT_DIGDBL_DIGLDBL_DIG

保证能在文本 → float/double/long double → 文本的往返转换中保留而不会因舍入或溢出发生改变的的十进制位数
(宏常量) [编辑]

FLT_MIN_EXPDBL_MIN_EXPLDBL_MIN_EXP

分别是能够使 FLT_RADIX 的该整数减一次幂为规格化的 floatdoublelong double 的最小负整数
(宏常量) [编辑]

FLT_MIN_10_EXPDBL_MIN_10_EXPLDBL_MIN_10_EXP

分别是能够使 10 的该整数减一次幂为规格化的 floatdoublelong double 的最小负整数
(宏常量) [编辑]

FLT_MAX_EXPDBL_MAX_EXPLDBL_MAX_EXP

分别是能够使 FLT_RADIX 的该整数减一次幂为可表示的有限的 floatdoublelong double 的最大正整数
(宏常量) [编辑]

FLT_MAX_10_EXPDBL_MAX_10_EXPLDBL_MAX_10_EXP

分别是能够使 10 的该整数减一次幂为可表示的有限的 floatdoublelong double 的最大正整数
(宏常量) [编辑]

FLT_MAXDBL_MAXLDBL_MAX

分别是 floatdoublelong double 的最大有限值
(宏常量) [编辑]

FLT_EPSILONDBL_EPSILONLDBL_EPSILON

分别是 1.0floatdoublelong double 的下一个可表示值的差
(宏常量) [编辑]

FLT_MINDBL_MINLDBL_MIN

分别是 floatdoublelong double 的最小规格化正数值
(宏常量) [编辑]

FLT_TRUE_MINDBL_TRUE_MINLDBL_TRUE_MIN

(C++17)

分别是 floatdoublelong double 的最小正数值
(宏常量) [编辑]
特殊值 (C++26 起)

(C++11)

求值为正无穷大(如果该值存在)
(宏常量) [编辑]

(C++11)

求值为 float 类型的安静 NaN(如果该值存在)
(宏常量) [编辑]
分别求值为 floatdoublelong double 各自的发信 NaN(如果该值存在)
(宏常量) [编辑]

概要

// 全部独立
#define __STDC_VERSION_FLOAT_H__ 202311L

#define FLT_ROUNDS       /* 见描述 */
#define FLT_EVAL_METHOD  /* 见描述 */
#define FLT_RADIX        /* 见描述 */
#define INFINITY         /* 见描述 */
#define NAN              /* 见描述 */
#define FLT_SNAN         /* 见描述 */
#define DBL_SNAN         /* 见描述 */
#define LDBL_SNAN        /* 见描述 */
#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 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    /* 见描述 */

参阅