public static double getDoubleNumber(double number) {
return getDoubleNumber("#0.00",number);
}
public static double getDoubleNumber(String reg, double number) {
try {
return Double.parseDouble(new DecimalFormat(reg).format(number));
} catch (Exception e) {
return 0.0;
}
}
public static void main(String [] aStrings){
double dd = 1.1250;
BigDecimal bg = new BigDecimal(dd).setScale(2, RoundingMode.UP);
System.out.println(bg.doubleValue());
// dd += 0.000001; // 如果加上这句,则两个输出都是 1.13,即只要再大一点点DecimalFormat("#0.00")才是四舍五入
System.out.println(getDoubleNumber(dd));
}
// 输出:
//1.13
//1.12
为什么说这是坑呢?因为在大多数情况下,DecimalFormat("#0.00") 其实是四舍五入的,比如把它变大一点点。