1 是 int 類型,為什么 short s = 1 不報(bào)錯(cuò),而 1.1 是 double 類型 float f = 1.1 卻報(bào)錯(cuò)?
1 回答

千巷貓影
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
因?yàn)閕nt如果超了short范圍,會(huì)被截取低位部分,沒(méi)超會(huì)正常賦值.
但double類型是不可預(yù)測(cè)的,可能很簡(jiǎn)單的數(shù)字都占滿了所用的字節(jié),比如:0.5,在內(nèi)存中其實(shí)表示為:0.499999999999
這樣的數(shù)字截取低位部分就是另一個(gè)數(shù)字了,這顯然不能容許.所以float賦值小數(shù)必須加標(biāo)記,便于編輯器在編譯期間檢查.
添加回答
舉報(bào)
0/150
提交
取消