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") 实际上是四舍五入的,好比把它变大一点点。java