下面以儲存兩位有效數字為例。
1.首先我們想到用先乘以100取整後再除以100.0這種做法:
System.out.println(Math.round(4.015*100)/100.0);
執行結果為4.01,顯然沒有達到我們想要的結果。
2.那用java.text.DecimalFormat呢?
System.out.println(new java.text.DecimalFormat("0.00").format(4.015));
System.out.println(new java.text.DecimalFormat("0.00").format(4.025));
執行結果都為4.02。
3.用java.math.BigDecimal.
Math 類包含用于執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
提供用于執行任意精度整數算法 (BigInteger) 和任意精度小數算法 (BigDecimal) 的類。
double abc = 4.015; //4.025
System.out.println(new java.math.BigDecimal(abc).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());
結果:4.01 (當使用4.025時結果為4.03)
看來還是達不到效果。
4.用下面的方法:
System.out.println(Math.round(4.015*100 + 0.5)/100.0);
5.試試下面的方法:
System.out.println(new java.math.BigDecimal(Double.toString(abc)).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());

轉載請注明來源網站:www.itxm.cn謝謝!