最近遇到許多標準化輸出,需要輸出固定位數的小數結果。
將程序中的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);
}
希望上面的方法對大家有幫助,大家有其他好的方法可以留言交流。謝謝