乐趣区

关于java:BigDecimal-javalangArithmeticException

应用 BigDecimal 的进行除法运算时,

public BigDecimal divide(BigDecimal divisor) 

当遇到后果为无限小数时,如 1 / 3 这种状况,如果不指定保留小数位数,就是出现异常:

java.lang.ArithmeticException: 
Non-terminating decimal expansion; 
no exact representable decimal result.
    at java.math.BigDecimal.divide(BigDecimal.java:1693)

因而须要应用 divide 的重载办法:

public BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

scale为要保留的小数位数
roundingMode 为小数保留形式

退出移动版