浮點型常量
浮點型常量
浮點型常量有多種寫法。其基本形式是首先寫整數部分(可以帶符號),接著寫小數部分,然後寫 e或者 E,最後再寫一個有符號整數。
例如:
+1.2E+5
1.5e-9
-5.0e10
其中 e 或 E 被稱為階碼標誌,e 或 E 後面的有符號整數被稱為階碼。階碼代表 10 的階碼次方。例如:+1.2E+5 的值是 是1.2*10^(5)。假設 A 為 e 前面的部分,N 是 e 後面的部分,則 AeN 等於 A * 10N。此外,正號可以省略不寫。小數部分也不是必需的,也就是說,5e3 也是正確的。階碼標誌和階碼也可以不寫,如:13.5。小數點後面,階碼標誌之前的那部分整數可以不寫(9.E5),小數點之前的整數也可以不寫(.96e-8),但是不能同時都不寫。例如:
56.
.5
3.14
3e6
.6E-8
注意:浮點型常量中不能有空格!例如:
3.21e -12
3.14e5
浮點型常量默認是 double 類型的。假設 var_f 是 float 類型的變數,如果有以下語句:
var_f = 9.0 * 3.0;
當然,我們也可以指定浮點型常量的類型。在浮點型常量後面添上 f 或者 F,編譯器就會用 float 類型來處理這個常量。例如:1.5f,2.1e6F。在後面添上 l 或者 L 的話,編譯器會用 long double 類型來處理這個常量。例如:4.1l,50.2E5L。最好用大寫 L,因為小寫 l 容易和數字 1 混淆。
對於 float 型,E 後面的階碼的取值範圍至少要達到 -37 到 +37。對 double 和 long double 的規定同樣如此。
C99 新增了一種表示浮點型常量的格式:使用十六進位前綴(0x 或 0X,0 是數字 0,不是字母 o ),用 p或 P 代替前面所說的 e 或 E,而且階碼代表的是 2 的階碼次方。例如:
0xb.1ep9