加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Non-terminating decimal expansion; no exact representable de

发布时间:2020-12-14 05:16:00 所属栏目:大数据 来源:网络整理
导读:Non-terminating decimal expansion; no exact representable decimal result.? 翻译为:非终止十进制扩展; 没有确切的可表示的小数结果; 翻译为人话就是说:BigDecimal是为高精度计算而设计的,而你的值是没有精确结果的; 举例: BigDecimal b1=new BigDe

Non-terminating decimal expansion; no exact representable decimal result.? 翻译为:非终止十进制扩展; 没有确切的可表示的小数结果;

翻译为人话就是说:BigDecimal是为高精度计算而设计的,而你的值是没有精确结果的;

举例:

BigDecimal b1=new BigDecimal(1.0);
BigDecimal b2=new BigDecimal(3.0);
BigDecimal c=b1.divide(b2);

1.0/3.0是除不尽的,所以抛出异常

解决方案:使用BigDecimal.divide(BigDecimal?divisor,int?scale,?RoundingMode?roundingMode)?;

BigDecimal b1=new BigDecimal(1.0);
BigDecimal b2=new BigDecimal(3.0);
BigDecimal c=b1.divide(b2,3,RoundingMode.HALF_UP);

其中? ?scale? 为保留的小数位;RoundingMode?roundingMode 为取舍模式(如:RoundingMode.HALF_UP 四舍五入);

RoundingMode具有哪些模式请参照我的另一篇博客:https://www.cnblogs.com/minxl/p/10247770.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读