早知道在java中,浮點(diǎn)運(yùn)算會(huì)出現(xiàn)不精確的情況。解決方案是BigDecimal類。今天發(fā)現(xiàn)個(gè)問(wèn)題:System.out.println(2-1.1);//0.8999999999999999System.out.println(2.0-0.9);//1.1只要沒有整數(shù)位的都會(huì)出現(xiàn)問(wèn)題?Why?
2 回答

九州編程
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
原因在于浮點(diǎn)數(shù)由兩部分組成:指數(shù)和 尾數(shù),浮點(diǎn)數(shù)轉(zhuǎn)換成二進(jìn)制后,并且參與了計(jì)算,那么轉(zhuǎn)換的過(guò)程就會(huì)變得不可預(yù)知,并且變得不可逆
你提到的第二個(gè)情況僅僅是碰巧在轉(zhuǎn)換過(guò)程中沒有發(fā)現(xiàn)精度丟失
添加回答
舉報(bào)
0/150
提交
取消