java中如果需要精確的計算答案,請避免使用double類型與float類型


double類型與float類型主要用於科學計算與工程計算而設計的,用於二進制浮點計算。對於普通計算通常是結果不准確的,所以對於普通的浮點數的加減法等,解決的方法需要用int,long,BigDecimal來計算。

1.計算出現的問題?

計算結果如下:

顯然結果不是我們所需要的。我們需要的結果是:0.88

所以,我們的程序應該這樣寫:

1     public static void main(String[] args) {
2         BigDecimal a=BigDecimal.valueOf(1.29);
3         BigDecimal b=BigDecimal.valueOf(0.41);
4         System.out.println(a.subtract(b));
5     }

 

最后的結果也是我們需要的結果:

 

循環計算:

public static void main(String[] args) {
        BigDecimal a=new BigDecimal(0.00);
        BigDecimal b=null;
        for(int i=0;i<4;i++){
            b=BigDecimal.valueOf(5.7+i);
            a=a.add(b);
        }
        System.out.println(a);
    }

運行結果為:28.8  嘿嘿,浮點類型終於可以比較准確的計算了

 

這又長見識了。。。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM