簡體   English   中英

Java語言中的原始數據類型

[英]Primitive Data Types In Java Language

為什么我們要用Java語言寫(L)長和(F)浮點以及(D)雙雙。 示例浮點數= 190.12f。

您不必寫任何東西。 如果不以數字后綴結尾來顯式指定其類型,則默認情況下會將其假定為intdouble (基於它是否包含小數點)。

如果希望將文字視為非默認類型(如long),則必須顯式指定(例如,使用L )。 有時您被迫顯式地指定類型-例如,文字10000000000不會通過編譯,因為它對於int太大,因此必須編寫10000000000L才能使編譯器將其視為long

您不必鍵入D來表示double因為double是浮點數的默認類型。

現在, doublefloat的區別在於精度。 Java使用32位存儲float ,使用64位存儲double
實際上double是一個愚蠢的名字,它的起源可以追溯到Fortran,它意味着double precision
完全相同的事情發生在intlong int是32位的默認類型, long是64位。 所以,一個int可以存儲簽署了價值-2^31(2^31)-1long之間-2^63(2^63)-1有關此更多信息,看這里

因此,如果您希望數字不被視為默認類型,則必須以某種方式讓編譯器知道。 Hense的Llongffloat

實際上,當您執行類似操作時, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM