1. 程式人生 > >java處理浮點型別的加減乘除法出現小數點精度錯亂的解決方法

java處理浮點型別的加減乘除法出現小數點精度錯亂的解決方法

如果你在java裡面執行一下一段程式碼,你會發現會出現錯亂的小數點:

        double d1 = 100.0234;
        double d2 = 12.0652;
        System.out.println(d1-d2);

輸出的結果可能是這樣的:87.95819999999999
這個結果絕對不是我們所需要的結果咯,因為這個是科學計數的結果,如果你想要得到正確的結果,那麼必須用到java.math.BigDecimal裡面的方法。
如下程式碼:

        double d1 = 100.0234;
        double d2 = 12.0652;
        BigDecimal b1 = new
BigDecimal(Double.toString(d1)); BigDecimal b2 = new BigDecimal(Double.toString(d2)); System.out.println(b1.subtract(b2).doubleValue());

注意BigDecimal的初始化一定要是字串格式的哦。
這樣就解決了浮點型精度錯亂的問題了。