public static void main(String[] args) {
double num = About.halfUpDouble(12.3425, 3);
System.out.println(num);
}
public static double halfUpDouble(double num, int scale) {
//注意,下面的Double必須先轉爲String再轉爲BigDecimal,否則轉成的BigDecimal會失真.比如
//將12.3445轉爲BigDecimal可能就是12.3444999999.......(省略一大堆9),此時如果去除的
//話會出現與期望不符合的結果
BigDecimal b = new BigDecimal(new Double(num).toString());
final BigDecimal one = new BigDecimal("1");
//曾經考慮過用BigDecimal.round(),但round好像無法控制小數點位數級別的四捨五入,只好用
//除以一這種齷齪的方法,呵呵
return b.divide(one, scale, RoundingMode.HALF_UP).doubleValue();
}