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