bigdecimal 除法除不尽的情况,BigDecimal 除法
目录
十进制除数除法除不尽报错解决办法关于BigDecimal除法问题BigDecimal做除法时BigDecimal源码
BigDecimal divide除法除不尽报错
用BigDecimal做除法的时候,直接拿起两数怼上除法有时候会出现除不尽就会报错
列如:
BigDecimal a=new BigDecimal(10);BigDecimal re=a . divide(new BigDecimal(3));系统。出去。println(re);或:
BigDecimal a=new BigDecimal(10);BigDecimal re=a . divide(new BigDecimal(3)).setScale(2,BigDecimal .ROUND _ HALF _ UP);系统。出去。println(re);直接这样除是会出现除不尽报错的
解决办法
除的时候直接截取位数就好了
BigDecimal a=new BigDecimal(10);BigDecimal re=a . divide(new BigDecimal(3),2,BigDecimal .ROUND _ HALF _ UP);系统。出去。println(re);
关于BigDecimal除法问题
BigDecimal做除法时
尽量使用除法(BigDecimal除数int scale,int roundingMode),这个方法
除数:被除数规模保留小数位数舍入模式保留小数时采用的方法,一般使用BigDecimal .四舍五入(四舍五入)
如果不指定保留小数位数,在遇到除不尽的情况下就会报错
BigDecimal源码
试试{ quotient=this。除(除数,MC);} catch(算术异常e){抛出新的算术异常(非终止十进制扩展;没有精确可表示的小数结果。);以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行它.
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。