浮原始類型我有一個有關聲明Java中的一個長變量問題:分配一個值長和Java中
這編譯:long x = 10;
這給出了一個編譯器錯誤:long x = 1000000000000
這編譯:long x = 1000000000000L
爲什麼我不需要在第一種情況下將數字放在後面?這與編譯器自動將長整型轉換爲整型值有什麼關係(因爲Iguess在第一個例子中發生了什麼)?
兼談浮動的同一個問題:
這並不編譯:float f = 10.1;
這編譯:float f = 10;
這編譯:float f = 10.1f;
爲什麼第一個例子不能編譯?爲什麼第二個例子中不需要f-prefix?這與編譯器如何自動轉換爲雙精度?
在此先感謝!
因爲沒有L後綴,數字是一個int,1000000000000對於int來說太大 – 2016-02-28 12:05:38
*「如果整數字面量後綴爲ASCII字母L或l(ell),則該類型爲long類型;否則爲鍵入int(§4.2.1)。「* - 1000000000000不能放入int。 – Maroun
對於浮點數,編譯器告訴你爲什麼:「錯誤:不兼容的類型:從double到float的可能的有損轉換」 – 2016-02-28 12:06:42