[英]Primitive Data Types In Java Language
為什么我們要用Java語言寫(L)長和(F)浮點以及(D)雙雙。 示例浮點數= 190.12f。
您不必寫任何東西。 如果不以數字后綴結尾來顯式指定其類型,則默認情況下會將其假定為int
或double
(基於它是否包含小數點)。
如果希望將文字視為非默認類型(如long),則必須顯式指定(例如,使用L
)。 有時您被迫顯式地指定類型-例如,文字10000000000不會通過編譯,因為它對於int
太大,因此必須編寫10000000000L才能使編譯器將其視為long
。
您不必鍵入D
來表示double
因為double
是浮點數的默認類型。
現在, double
和float
的區別在於精度。 Java使用32位存儲float
,使用64位存儲double
。
實際上double
是一個愚蠢的名字,它的起源可以追溯到Fortran,它意味着double precision 。
完全相同的事情發生在int
和long
。 int
是32位的默認類型, long
是64位。 所以,一個int可以存儲簽署了價值-2^31
和(2^31)-1
和long
之間-2^63
和(2^63)-1
有關此更多信息,看這里
因此,如果您希望數字不被視為默認類型,則必須以某種方式讓編譯器知道。 Hense的L
為long
和f
為float
。
實際上,當您執行類似操作時, float x = 0.1f
0.1
文字隱式轉換為float
。 該語句等於float x = (float) 0.1
為了更好地理解這一點,請看以下示例:
可以說我們有兩個變量:
float x = 0.1f;
double y = 0.1;
您如何看待System.out.println(x == y);
將輸出? (花點時間考慮一下)
答案是: false
為什么? 讓我們看看小數點后的前20位數字:
0.1f --> 1000000014901161200
0.1 --> 1000000000000000055
我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.