標頭檔案

<cfloat> (float.h)

浮點型別的特性
此標頭檔案描述了特定系統和編譯器實現所使用的浮點型別的特性。

一個浮點數由四個元素組成
  • 符號:負數或非負數
  • 基數(或底數):表示單個數字可以表示的不同數值(二進位制為2,十進位制為10,十六進位制為16,等等...)
  • 有效數(或尾數):由上述基數的一系列數字組成。這個系列中數字的數量即為精度
  • 指數(也稱為階碼或標度):表示有效數的偏移量,透過以下方式影響數值
    浮點數值 = 有效數 x 基數指數,並帶有其相應的符號。

宏常量

下表顯示了此標頭檔案中定義的不同值的名稱及其對所有實現的最小或最大值(每個實現可能會將這些值設定為大於或小於此最小值或最大值,具體如規定)

當存在一組以 FLT_DBL_LDBL_ 為字首的宏時,以 FLT_ 開頭的適用於 float 型別,以 DBL_ 開頭的適用於 double,以 LDBL_ 開頭的適用於 long double

名稱代表表示
FLT_RADIX
samp>2
/samp> or greater    
RADIX(基數)所有浮點型別(floatdoublelong double)的基數。
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
MINimum EXPonent(最小指數)生成規範化浮點數的指數的最小負整數值。
FLT_MIN_10_EXP
DBL_MIN_10_EXP
LDBL_MIN_10_EXP
-37 或更小
-37 或更小
-37 或更小
MINimum base-10 EXPonent(最小以10為底的指數)能生成規範化浮點數的以10為底的表示式的指數的最小負整數值。
FLT_MAX_EXP
DBL_MAX_EXP
LDBL_MAX_EXP
MAXimum EXPonent(最大指數)生成規範化浮點數的指數的最大整數值。
FLT_MAX_10_EXP
DBL_MAX_10_EXP
LDBL_MAX_10_EXP
37 或更大
37 或更大
37 或更大
MAXimum base-10 EXPonent(最大以10為底的指數)能生成規範化浮點數的以10為底的表示式的指數的最大整數值。
FLT_MAX
DBL_MAX
LDBL_MAX
1E+37 或更大
1E+37 或更大
1E+37 或更大
MAXimum(最大值)可表示的最大有限浮點數。
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 或更小
MINimum(最小值)可表示的最小正浮點數。
FLT_ROUNDSROUND(舍入)舍入行為。可能的值
-1 不確定
 0 向零舍入
 1 向最近的數舍入
 2 向正無窮大舍入
 3 向負無窮大舍入
適用於所有浮點型別(floatdoublelong double)。
FLT_EVAL_METHODEVALuation METHOD(求值方法)求值格式的屬性。可能的值
-1 不確定
 0 僅以型別的範圍和精度進行求值
 1floatdouble 作為 double 求值,將 long double 作為 long double 求值。
 2 將所有型別作為 long double 求值。其他負值表示由實現定義的行為。
適用於所有浮點型別(floatdoublelong double)。
DECIMAL_DIGDECIMAL DIGits(十進位制位數)可以四捨五入到浮點型別再轉換回相同的十進位制數字,且不損失精度的十進位制位數。

相容性

FLT_EVAL_METHODDECIMAL_DIG 是為符合1999年或更高版本C標準的庫定義的(這僅包括自2011年以來的C++標準:C++11)。

另見