我是靠谱客的博主 高贵枕头,最近开发中收集的这篇文章主要介绍ArithmeticException - 没有可确切表示的小数结果ArithmeticException - 没有可确切表示的小数结果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ArithmeticException - 没有可确切表示的小数结果


@本文章运行于Java 8下

ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

  1. 在什么情况下抛出该异常
BigDecimal a = new BigDecimal("1.6");
BigDecimal b = new BigDecimal("9.2");
a.divide(b)

2.引发该异常的原因

1.BigDecimal 是一个由用户完全控制舍入行为的类,如果用户没有明确知道舍入模式,则抛出异常。
2.如果把MathContext 精度设置为0,则不会出现精度问题,因为该设置将不会使用精度计算,也就是不保留小数位。
3.Java 5 之前只支持这个行为,但是如果你指定了舍入模式,你就必须指定你期待的一个精度。比如,当出现无限小数的时候,将会抛出异常,所以,你必须指定你需要的精度以及舍入模式。

3.如何解决该异常

// 指定保留2位小数,使用HALF_UP 的舍入模式
a.divide(b, 2, RoundingMode.HALF_UP)

最后

以上就是高贵枕头为你收集整理的ArithmeticException - 没有可确切表示的小数结果ArithmeticException - 没有可确切表示的小数结果的全部内容,希望文章能够帮你解决ArithmeticException - 没有可确切表示的小数结果ArithmeticException - 没有可确切表示的小数结果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部