好吧,我有一對夫婦在這裏值:這些數字是什麼,它們的類型是什麼?
'F', 0xf, 070, 70L, 77e-1f, 7.7f, 7.77e1, 77.7
我知道'F'
是char
和70L
有型long
。另外,我知道0xf
是十六進制(對吧?),而070
是八進制。但那些其他數字是什麼?爲什麼地獄是77.7
double
而不是float
?
好吧,我有一對夫婦在這裏值:這些數字是什麼,它們的類型是什麼?
'F', 0xf, 070, 70L, 77e-1f, 7.7f, 7.77e1, 77.7
我知道'F'
是char
和70L
有型long
。另外,我知道0xf
是十六進制(對吧?),而070
是八進制。但那些其他數字是什麼?爲什麼地獄是77.7
double
而不是float
?
什麼你要找的是this
77.7
:浮點文字是float類型的,如果它與字母F 或f結束;否則它的類型是雙倍的,並且它可以選擇以字母D或d結束 。
0xf
是hex
類型不是。沒有類型hex
。這只是一個十六進制的wirtten int
。就像070
是用八進制寫的int
。
文字77e-1f
顯然是一個浮點數,因爲它以f
結尾。
的e
是exponent
即77e-1f
實際上77 * 10^(-1)
或7.7
。由於相同的原因,字面7.77e1
是雙倍數77.7
是雙倍數,只是7.77e1
等於7.77 * 10^1
= 77.7
。
只有兩個,你沒有解釋自己:
7.7f
使得f意味着浮動 - 這表明,這不應該是一個雙文字,但遠,浮法之一!你可以看到,默認情況下,任何「浮點」文字自動類型爲double,您需要「f」才能執行「更小」浮點類型。
而且
77e-1f
用科學記數法,見here例如用於進一步的解釋。
在包含一個點的Java數值文字相同的類型的默認兩倍。如果你想要一個浮動,你可以追加f
。
包含e
的數字是指數或科學記數法,但我不打算在這裏解釋它,因爲它與編程無關。
77E-1含義:
77
是數乘法器,e
(或E
)指base 10
,和-1
裝置指數。
所以結果是通過77
(10
搭載-1
),或通過77
.1
島即7.7
這個符號的名稱是科學或對數,也是很好的非常大或非常小的數字,E。 G。 1 million = 1.000.000
可能表示爲1e6
*爲什麼地獄*你已經包含了你已經知道的東西? :) –
*「爲什麼地獄是77.7倍,不漂浮?」*研究不是你的力量,對吧? https://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.2。至少你得到了另一個不好的用戶「可憐upvote」:)。 – Tom
我不明白。所以77.7和77,7不一樣? – Geddi