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