1 在處理數值運算的時候,有時候會遇到保留幾位小數的需求,下面是一個保留兩位小數的簡單方法。 2 /** 3 * 將數據保留兩位小數 4 */ 5 privatedoublegetTwoDecimal(doublenum) { 6 DecimalFormatdFormat=newDecimalFormat("#.00"); 7 StringyearString=dFormat.format(num); 8 Doubletemp= Double.valueOf(yearString); 9 returntemp; 10 }
?這個方法可以把一個double類型的數值保留兩位小數,并且可以實現數值的四舍五入。 其實,我們還有更簡單的方法: double value =newBigDecimal(num).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();?
?這個方法可以更加簡單地實現將一個double型數值保留兩位小數。不僅如此,還可以很方便的實現一些其他功能,比如: double value2 = new BigDecimal(num).divide(new BigDecimal(100)).doubleValue();?
上面的代碼可以實現精確的除法運算。除此之外,還可以實現加法、減法、乘法等,還可以選擇四舍五入(BigDecimal.ROUND_HALF_UP)或者直接舍棄小數(BigDecimal.ROUND_DOWN)不進位。例如: public static void main(String[] args) {BigDecimal a = new BigDecimal(1546).divide(new BigDecimal(1000)).setScale(2,BigDecimal.ROUND_DOWN);System.out.println(a); }
雖然末位是6,但是仍然不進位,結果是1.54。public static void main(String[] args) {BigDecimal a = new BigDecimal(1543).divide(new BigDecimal(1000)).setScale(2,BigDecimal.ROUND_UP);System.out.println(a); } 這時,雖然末位是3,仍然進位,結果是1.55。
?