这篇文章主要介绍“BigDecimal divide除法除不尽报错如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“BigDecimal divide除法除不尽报错如何解决”
这篇文章主要介绍“BigDecimal divide除法除不尽报错如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“BigDecimal divide除法除不尽报错如何解决”文章能帮助大家解决问题。
用BigDecimal做除法的时候,直接拿起两数怼上除法有时候会出现除不尽就会报错
列如:
BigDecimal a = new BigDecimal(10);BigDecimal re = a.divide(new BigDecimal(3));System.out.println(re);
或:
BigDecimal a = new BigDecimal(10);BigDecimal re = a.divide(new BigDecimal(3)).setScale(2, BigDecimal.ROUND_HALF_UP);System.out.println(re);
直接这样除是会出现除不尽报错的
除的时候直接截取位数就好了
BigDecimal a = new BigDecimal(10);BigDecimal re = a.divide(new BigDecimal(3),2,BigDecimal.ROUND_HALF_UP);System.out.println(re);
尽量使用divide(BigDecimal divisor, int scale, int roundingMode),这个方法
divisor:被除数 scale保留小数位数 roundingMode保留小数时采用的方法,一般使用BigDecimal.ROUND_UP(四舍五入)
如果不指定保留小数位数,在遇到除不尽的情况下就会报错
try { quotient = this.divide(divisor, mc);} catch (ArithmeticException e) { throw new ArithmeticException("Non-terminating decimal expansion; " + "no exact representable decimal result.");
关于“BigDecimal divide除法除不尽报错如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。
--结束END--
本文标题: BigDecimal divide除法除不尽报错如何解决
本文链接: https://lsjlt.com/news/341378.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0