如果我使用科學記數法對我的代碼中的數字進行硬編碼(例如1e9
),那麼這個數字的類型是什麼(int,long,float,double ..)?科學記數法被解釋爲int還是float?
當尾數或指數是浮點數不能是整數很明顯,但在什麼上面呢?
如果我使用科學記數法對我的代碼中的數字進行硬編碼(例如1e9
),那麼這個數字的類型是什麼(int,long,float,double ..)?科學記數法被解釋爲int還是float?
當尾數或指數是浮點數不能是整數很明顯,但在什麼上面呢?
e
使其成爲浮點文字。從JLS(§3.10.2. Floating-Point Literals):
浮點字面是
float
類型的,如果它的後綴用字母ASCII或F
f
;否則它的類型是double
,它可以選擇性地以ASCII字母D
或d
(§4.2.3)作爲後綴。
因此,double
類型的1e9
,如1e9d
。另一方面,1e9f
的類型是float
。
這些通常是類型雙的。 如果你把f
(的F
)放在它後面,這是一個浮動。
double d = 1e9;
float f = 1e9f;
這將被視爲一個floating point literal,沒有拖尾f
或F
這將是一個double
。
Integer literals不能使用科學記數法。
這將是'雙',除非你使用'f'或'F',那麼它將是浮動文字。
最好使用Double。因爲它有十進制浮點數是與科學記數法密切相關的計算機算術系統。例如: : 0.000 000 007 51 以科學計數法爲7.51×10-9。當你將它作爲int使用時,它將是7,而當你使用int時,它將是7.51。