int x=1;x+=9.0;這代碼為什么沒(méi)出錯(cuò)呢? 1+9.0不是應(yīng)該得到10.0嗎? 為什么這里得到的是10 我原以為會(huì)得到10.0? x是int 所以會(huì)編譯出錯(cuò)? 結(jié)果卻沒(méi)錯(cuò)
3 回答

慕斯4075808
TA貢獻(xiàn)6條經(jīng)驗(yàn) 獲得超2個(gè)贊
這就涉及到精度問(wèn)題了,低精度的向高精度的轉(zhuǎn)換可以直接轉(zhuǎn),但高精度的向低精度的就得強(qiáng)制轉(zhuǎn)換了,答案是10是因?yàn)閄定義的是int 類型

qq_Bang
TA貢獻(xiàn)6條經(jīng)驗(yàn) 獲得超8個(gè)贊
你一開始定義的x是int類型的,所以肯定后面得到x的結(jié)果是int,如果你要想得到double的值,你可以把它定義成double類型

huangzhong
TA貢獻(xiàn)16條經(jīng)驗(yàn) 獲得超7個(gè)贊
你可以把9.0改成9.9看看,結(jié)果還是10,應(yīng)為這樣做運(yùn)算時(shí)發(fā)生了截?cái)?,小?shù)部分被丟棄了
添加回答
舉報(bào)
0/150
提交
取消