Java中實現n位小數四捨五入的輸出

最近遇到許多標準化輸出,需要輸出固定位數的小數結果。
將程序中的double值精確到小數點後n位。可以四捨五入,也可以直接截斷
這裏給出一些輸出方式:

用到的有Java的這幾個包:

 java.math.BigDecimal;
 java.math.RoundingMode;
 java.text.DecimalFormat;
 java.text.NumberFormat;

這裏分爲兩類進行說明,一類返回爲double,一類返回爲String

1.返回值爲double類型:

 public double decimalDouble(double number,int n){

 //其中number爲要格式化輸出的double類型的數,n表示保留幾位小數
        //Function 01
     return Math.round(number*Math.pow(10,n))/Math.pow(10,n);

        //Function 02
        BigDecimal bg = new BigDecimal(number).setScale(n, RoundingMode.UP);
        return bg.doubleValue();

    }

2.返回值爲String類型:

 public String decimalDouble(double number,int n)    {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(n); 
        nf.setRoundingMode(RoundingMode.UP);
        return nf.format(number);
    }

最後再給出兩個輸出兩位小數的實例:

public String decimalDouble(double number){

    //Function 01
    DecimalFormat df = new DecimalFormat("#.00");
    return df.format(d);

    //Function 02
    return String.format("%.2f", d);
}

希望上面的方法對大家有幫助,大家有其他好的方法可以留言交流。謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章