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 嘿嘿,浮點類型終於可以比較准確的計算了
這又長見識了。。。