BigDecimal :java.lang.ArithmeticException

Posted 藿香正气

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BigDecimal :java.lang.ArithmeticException相关的知识,希望对你有一定的参考价值。

使用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为小数保留方式

以上是关于BigDecimal :java.lang.ArithmeticException的主要内容,如果未能解决你的问题,请参考以下文章

java bigdecimal 四舍五入

BigDecimal运算

BigDecimal使用详解

BigDecimal类的用法

BigDecimal

BigDecimal setScale问题