BigDecimal做除法运算报java.lang.ArithmeticException: Non-terminating decimal expansion; no exact represent
2017-02-08 11:45
711 查看
今天在使用两个BigDecimal类型的数字做除法运算时,出现了一个如下的异常信息:
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
解决方案:
BigDecimal weightValue = new BigDecimal(1000).multiply(new BigDecimal(11)).divide(new BigDecimal(2),2,RoundingMode.HALF_UP); RoundingMode.HALF_UP
可以省略
此就是给divide方法设置精确的小数点,如:divide(xxxxx,2)。
附:
BigDecimal枚举常量用法摘要 :
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
解决方案:
BigDecimal weightValue = new BigDecimal(1000).multiply(new BigDecimal(11)).divide(new BigDecimal(2),2,RoundingMode.HALF_UP); RoundingMode.HALF_UP
可以省略
此就是给divide方法设置精确的小数点,如:divide(xxxxx,2)。
附:
BigDecimal枚举常量用法摘要 :
CEILING | 向正无限大方向舍入的舍入模式 |
DOWN | 向零方向舍入的舍入模式 |
DOWN | 向零方向舍入的舍入模式 |
FLOOR | 向负无限大方向舍入的舍入模式 |
HALF_DOWN | 向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向下舍入 |
HALF_EVEN | 向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入 |
HALF_UP | 向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向上舍入 |
UNNECESSARY | 用于断言请求的操作具有精确结果的舍入模式,因此不需要舍入 |
UP | 远离零方向舍入的舍入模式 |
相关文章推荐
- BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact represent
- BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact represent
- BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result的解决办法
- BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result的解决办法
- BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result的解决办法
- BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result的解决办法
- 使用BigDecimal进行除法运算的时候报 Non-terminating decimal expansion; no exact representable decimal result
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res
- Java中BigDecimal异常Non-terminating decimal expansion; no exact representable decimal result
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result异常的解决方法
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result异常的解决方法
- 系统异常,异常信息:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable d
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res
- Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exac
- 【java错误】Non-terminating decimal expansion; no exact representable decimal result
- BigDecimal不整除的一个异常java.lang.ArithmeticException: Non-terminating decimal expansion
- Java异常:Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion;