問題闡述
在數(shù)學(xué)中進(jìn)行除法運(yùn)算時(shí),9/2 與 9/2.0 的結(jié)果是相等的。那么在計(jì)算機(jī)中表達(dá)式 9/2與 9/2.0
的結(jié)果是否相等呢?
專家解答
整數(shù)與整數(shù)之間運(yùn)算的結(jié)果必然是整數(shù),就算是除法也會(huì)執(zhí)行整除而舍棄小數(shù)。所以9/2 的結(jié)果是
4,但是整數(shù)與浮點(diǎn)數(shù)的運(yùn)算會(huì)轉(zhuǎn)換為浮點(diǎn)數(shù)類型再進(jìn)行運(yùn)算,其結(jié)果應(yīng)是浮點(diǎn)數(shù)類型,所以 9/2.0 的結(jié)果是 4.5,所以 9/2 的結(jié)果與
9/2.0的結(jié)果是不相等的。
下面通過程序來說明:
運(yùn)行程序,結(jié)果如圖 3.9 所示,從輸出結(jié)果可以看出,9/2 的結(jié)果與 9/2.0 的結(jié)果是不相等的。
專家點(diǎn)評
由于整數(shù)除法與浮點(diǎn)數(shù)除法的輸出結(jié)果存在很大的差別,所以在進(jìn)行程序設(shè)計(jì)時(shí),要考慮如何才能得到正確的結(jié)果,尤其在進(jìn)行一些對數(shù)據(jù)精度要求很高的計(jì)算時(shí),更應(yīng)該慎之又慎,如果有必要可以考慮使用
BigDecimal 類提供的方法實(shí)現(xiàn)高精度的算術(shù)運(yùn)算。