2017-07-16 70 views
0

下面的代碼導致的編譯器錯誤在Java默認爲整數數據類型floting點的文字值和

float variable = 123.4 

而正是因爲這樣的事實,對於浮點字面值默認爲雙倍數據類型。所以,我們應該提前將字面值賦給float,或者將變量聲明爲double來解決這個問題。 正如我們所知,整數立即數的默認值爲整數數據類型。然而,沒有編譯器錯誤,當我們宣佈字節變量如下面

byte variable = 123 

我想要的例子就知道爲什麼我們沒有,如果投123 字節數據類型的默認爲一體的字面值是整數。

+2

如果你寫'浮點型變量= 123.4f',則不需要進行轉換 – janos

+3

不存在將'123'作爲字節存儲的精度損失 – khelwood

+0

我同意@janos但是,這是一個常見的約定大寫字母初始化文字時。 –

回答

0

整型字節,short,int和long的值可以用int文字創建,而值可以適合變量的類型。

您可以檢索信息here

所以這個:

byte variable = 123; 

是罰款123適合一個字節。

byte variable = 1000;

將無法​​編譯爲1000不適合一個字節。

+0

I認爲'123.4D'也適合浮動。 – saka1029

+0

@ saka1029它沒有指定float,'123.4D'不是一個整型文字。 – davidxxx

+0

毫無疑問,我們可以像這個float變量= 1.4那樣聲明一個浮點文字值,雖然1.4完全適合浮點數據類型,但是會有一個編譯器錯誤,我們必須將1.4轉換爲浮點數據類型java的 – moha

相關問題