报错记录-divide方法的精确问题
报错记录-divide方法的精确问题
超报错描述
Caused by: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
数据除法的时候要考虑精确问题,有可能产生除不完的现象
例如:
1 | public static void main(String[] args) { |
就会报错
解决办法
在divide
方法里,加上保留几位,以及保留的方式,就不会报错了
1 | public static void main(String[] args) { |
其他
在 Java9 中 divide的方法有修改,旧的方法已经弃用了
旧方法
1 |
|
新方法
1 | public BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode) |