1、两数相除无限循环小数问题
直接看例子01:
@Test
public void BigNumber_Test () {
BigDecimal bd = new BigDecimal("10");
BigDecimal divNum = new BigDecimal("3");
// 除法遇到除不尽时,这种写法会抛出异常ArithmeticException
BigDecimal bigDecimal = bd.divide(divNum); // NG java.lang.ArithmeticException
System.out.println(bd.divide(divNum, 2)); // OK
System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_UP)); // OK
System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_DOWN)); // OK
System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_CEILING)); // OK
System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_FLOOR)); // OK
System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_HALF_UP)); // OK
System.out.println(bd.divide(divNum, 2, BigDecimal.ROUND_HALF_EVEN)); // OK
System.out.println(bd.divide(new BigDecimal("4"), 2, BigDecimal.ROUND_UNNECESSARY)); // OK
}