Android-异常-java.lang.ArithmeticException: Rounding necessary

来源:互联网 发布:龙珠z战斗力官方数据 编辑:程序博客网 时间:2024/05/09 16:22

前言:

使用BigDecimal处理保留的小数点位数的时候,发生一下异常

异常:


<span style="font-size:18px;">E/AndroidRuntime: FATAL EXCEPTION: main                                                                   Process: dianshi.matchtrader, PID: 2006                                                                   java.lang.ArithmeticException: Rounding necessary                                                                       at java.math.BigDecimal.roundingBehavior(BigDecimal.java:2765)                                                                       at java.math.BigDecimal.dividePrimitiveLongs(BigDecimal.java:1119)                                                                       at java.math.BigDecimal.setScale(BigDecimal.java:1889)                                                    </span>                   at java.math.BigDecimal.setScale(BigDecimal.java:1937)

异常出现的地方:


<pre name="code" class="java"><span style="font-size:18px;">/** * 将一个字符串或者Double 转成指定小数位的BigDecimal * @param scale * @return */public static BigDecimal toBigDecimal(double numble,int scale){BigDecimal bigDecimal=BigDecimal.valueOf(numble);<span style="color:#FF0000;">bigDecimal = bigDecimal.setScale(scale);</span>return bigDecimal;}</span>




解决方法:

添加 roundingMode参数,例如使用setScale(scale,BigDecimal.ROUND_HALF_UP)

问题出现原因:

未知,稍后分析



0 0