將一個double型數值保留兩位小數
阿新 • • 發佈:2018-12-09
在處理數值運算的時候,有時候會遇到保留幾位小數的需求,下面是一個保留兩位小數的簡單方法。
/** * 將資料保留兩位小數 */ privatedoublegetTwoDecimal(doublenum) { DecimalFormatdFormat = newDecimalFormat("#.00"); StringyearString = dFormat.format(num); Doubletemp = Double.valueOf(yearString); returntemp; }
這個方法可以把一個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。