static class test{ public static void main(String[] args) { BigDecimal b=new BigDecimal(45); BigDecimal c=new BigDecimal(7); //45除以7=6.428571428571429 //6.428571->6.42858 System.out.println(b.divide(c,5,BigDecimal.ROUND_UP)); //6.428571->6.42857 System.out.println(b.divide(c,5,BigDecimal.ROUND_DOWN)); //若是咱們按照上面的理解,獲得的結果應該一個是6.429,一個是6.428 //可是實際的運行結果都是6.429 //這兩個的本質都是四捨五入,若是你的結果總位數超過了你要保留的位數,都是按照四捨五入。 //只有你的結果的位數剛好比要保留的位數多一位,而且最後一位是剛好是5,才按照以前的規則進行運算。 System.out.println(b.divide(c,3,BigDecimal.ROUND_HALF_UP)); System.out.println(b.divide(c,3,BigDecimal.ROUND_HALF_DOWN)); }}