本文主要是介绍java.lang.ArithmeticException: Rounding necessary错误解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天使用BigDecimal的setScale方法控制小数位时遇到了java.lang.ArithmeticException: Rounding necessary错误,经查,setScale方法有2中使用方法:
1.只设置小数位
setScale(n),例如:
BigDecimal bigDecimal = new BigDecimal("1.25456");
bigDecimal.setScale(2) // 结果:报错
注:该用法适用于原数据小数位小于或等于指定小数位,当原数据小数位大于指定小数位n时,会报错:java.lang.ArithmeticException: Rounding necessary。这个时候就需要用第二种方法
2.设置小数位及如何进位
setScale(n,mode),例如:
bigDecimal.setScale(2, BigDecimal.ROUND_UP)
该用法不限制原数据小数位,超过指定小数位n时,根据后面的mode参数进行处理,常见参数:
BigDecimal.ROUND_HALF_UP:四舍五入
BigDecimal.ROUND_DOWN:直接舍去多余的位数
BigDecimal.ROUND_UP:直接进位
BigDecimal.ROUND_CEILING:向上进位
BigDecimal.ROUND_FLOOR:向下舍位
还有其他一下不常用的参数,有兴趣的可以再查阅其他资料。
这篇关于java.lang.ArithmeticException: Rounding necessary错误解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!