2013-03-20 33 views
11

如果我使用科學記數法對我的代碼中的數字進行硬編碼(例如1e9),那麼這個數字的類型是什麼(int,long,float,double ..)?科學記數法被解釋爲int還是float?

當尾數或指數是浮點數不能是整數很明顯,但在什麼上面呢?

回答

11

e使其成爲浮點文字。從JLS(§3.10.2. Floating-Point Literals):

浮點字面是float類型的,如果它的後綴用字母ASCII或Ff;否則它的類型是double,它可以選擇性地以ASCII字母Dd(§4.2.3)作爲後綴。

因此,double類型的1e9,如1e9d。另一方面,1e9f的類型是float

4

這些通常是類型的。 如果你把f(的F)放在它後面,這是一個浮動。

double d = 1e9; 
float f = 1e9f; 
3

這將是'雙',除非你使用'f'或'F',那麼它將是浮動文字。

0

最好使用Double。因爲它有十進制浮點數是與科學記數法密切相關的計算機算術系統。例如: : 0.000 000 007 51 以科學計數法爲7.51×10-9。當你將它作爲int使用時,它將是7,而當你使用int時,它將是7.51。