頭文件: <cfloat> (float.h) 浮點類型的特性 這個頭文件為特殊系統和編譯器的實現描述了浮點類型的特征. 一個浮點數包含四個元素: 一個標誌(a sign):正或負; 一個基數(a base):這表示一串不同的數字能夠被一個個單一的數字所表示(2 就是二進位(binary),10就是
頭文件:
<cfloat> (float.h)
浮點類型的特性
這個頭文件為特殊系統和編譯器的實現描述了浮點類型的特征.
一個浮點數包含四個元素:
- 一個標誌(a sign):正或負;
- 一個基數(a base):這表示一串不同的數字能夠被一個個單一的數字所表示(2 就是二進位(binary),10就是十進位(decimal),16就是十六進位(hexadecimal)...);
- 一個有效數(a significand):這是一系列前面所談到的基數的數字,在這一系列中數字的位數就是眾所周知的精度;
- 一個指數(an exponent):它代表著有效數字的偏移量,用下麵的方式影響著其值:
巨集常量
下麵的表格顯示了這個頭文件中定義的不同的變數的名稱和所有實現的最小值最大值
(具體的實現可能有的值比這個大或者小 按照說明):
當一組巨集存以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
*/