鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ 為什么 short s = 1 不報錯

為什么 short s = 1 不報錯

1int 類型,為什么 short s = 1 不報錯,而 1.1double 類型 float f = 1.1 卻報錯?

回答
編輯回答
絯孑氣

因為int如果超了short范圍,會被截取低位部分,沒超會正常賦值.

但double類型是不可預(yù)測的,可能很簡單的數(shù)字都占滿了所用的字節(jié),比如:0.5,在內(nèi)存中其實表示為:0.499999999999
這樣的數(shù)字截取低位部分就是另一個數(shù)字了,這顯然不能容許.所以float賦值小數(shù)必須加標(biāo)記,便于編輯器在編譯期間檢查.

2017年1月2日 14:09