java.lang.IllegalArgumentException: Invalid rounding mode

具体报错信息如下:

java.lang.IllegalArgumentException: Invalid rounding mode

	at java.math.BigDecimal.divide(BigDecimal.java:1558)
	at java.math.BigDecimal.divide(BigDecimal.java:1622)

原因分析

定位到(BigDecimal.java:1622)的位置:

加粗样式
接着往下:
在这里插入图片描述
传入的参数roundingMode小于0或大于7就会报这个错误.

代码回顾

int precision =8;// 小数精度位数
BigDecimal divide = big5.divide(big3, precision);

原来是把精度位数传给了取整类型.而BigDecimal的取整类型为#ROUND_UP
#ROUND_DOWN
#ROUND_CEILING
#ROUND_FLOOR
#ROUND_HALF_UP
#ROUND_HALF_DOWN
#ROUND_HALF_EVEN
#ROUND_UNNECESSARY
范围是 0 - 7.

问题修复

        int precision =8;
        // 给定小数精度位数,四舍五入取整
        BigDecimal divide = big5.divide(big3, precision,BigDecimal.ROUND_HALF_UP);

问题解决了: ) 特此记录,与君共勉

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值