栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ArithmeticException:“不终止的十进制扩展;没有确切可表示的小数结果”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ArithmeticException:“不终止的十进制扩展;没有确切可表示的小数结果”

从Java 11 BigDecimal文档:

当为

MathContext
对象提供的精度设置为0(例如MathContext.UNLIMITED)时,算术运算是精确的,不带
MathContext
对象的算术方法也是如此。(这是5之前的版本中唯一支持的行为。)

作为计算精确结果的必然结果,

MathContext
不使用精度设置为0 的对象的舍入模式设置,因此不相关。在除法的情况下,精确的商可以具有无限长的十进制扩展;例如1除以3。

如果商具有不间断的十进制扩展数,并且指定了该操作以返回精确的结果,

ArithmeticException
则将引发an 。否则,将返回除法的精确结果,就像其他操作一样。

要解决此问题,你需要执行以下操作:

a.divide(b, 2, RoundingMode.HALF_UP)

其中2是小数位数,RoundingMode.HALF_UP是四舍五入模式



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402412.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号