1. 程式人生 > >將一個double型數值保留兩位小數

將一個double型數值保留兩位小數

    在處理數值運算的時候,有時候會遇到保留幾位小數的需求,下面是一個保留兩位小數的簡單方法。

 

/**
  * 將資料保留兩位小數
  */
     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。