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...代码中使用了 BigDecimal 做精确计算,在做除法时,系统抛出 “ Non-terminating decimal expansion; no exact representable decimal
java.lang.ArithmeticException:Non-terminating decimal expansion,no exact representble decimal result...异常信息 java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal...result....从上面的异常信息可以看出是在进行decimal 类型的计算时候出错了,代码如下 if(yearincome!
其实提示信息已经很明显了,出现了无限循环小数,无法返回bigdecimal的值,回顾一下项目中的代码方式:
quotient = this.divide(divisor, mc); } catch (ArithmeticException e) { throw new ArithmeticException("Non-terminating...decimal expansion; " + "no exact representable decimal result.");
一、背景 今天在计算库存消耗百分比(消耗的库存/总库存)的时候遇到了一个错误,java.lang.ArithmeticException: Non-terminating decimal expansion...; no exact representable decimal result.
49 次查看 今天在写一个JAVA程序的时候出现了异常: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact...representable decimal result。
今天在运用BigDecimal做除法运算的时候,错误如下: Non-terminating decimal expansion; no exact representable decimal result
bigDecimal加减乘法都没问题,除法由于会有除不尽小数的情况,如果不限制小数位数的话会进入死循环报错:java.lang.ArithmeticException: Non-terminating...decimal expansion; no exact representable decimal result。
建议使用:BigDecimal.valueOf()方法赋值,比如: BigDecimal decimal1 = BigDecimal.valueOf(0.01); 同时,如果在高并发或者大量对象创建场景时...BigDecimal decimal2 = new BigDecimal("0.01"); BigDecimal decimal3 = new BigDecimal("0.010"); //false,...因为精度不一样 decimal2.equals(decimal3); //true, 只比较数值,不会比较精度 decimal2.compareTo(decimal3)==0; 知识点:所以要根据业务正确选择比较大小方法...BigDecimal.valueOf(3.00); BigDecimal d3 = d1.divide(d2); 上述代码执行后,会直接抛出异常:java.lang.ArithmeticException: Non-terminating...decimal expansion; no exact representable decimal result.
补充知识:BigDecimal中divide方法注意问题 BigDecimal中divide方法抛异常: Non-terminating decimal expansion; no exact representable...decimal result 在使用 BigDecimal rate = new BigDecimal(1).divide(new BigDecimal(3)); 时抛异常: Non-terminating...decimal expansion; no exact representable decimal result 原来是在做除法的时候出现了无限不循环小数如:0.333333333333 解决方案 在做做除法的时候指定保留的小数的位数
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result
System.out.println(result.toString()); } 执行结果报错: Exception in thread "main" java.lang.ArithmeticException: Non-terminating...decimal expansion; no exact representable decimal result.
BigDecimal除法可能出现不能整除的情况,比如 4.5/1.3,这时会报错 Exception in thread “main” java.lang.ArithmeticException: Non-terminating...decimal expansion; no exact representable decimal result.
divide =a.divide(b);6 System.out.println(“divide:” +divide);7 } 出现异常: 1 java.lang.ArithmeticException: Non-terminating...decimal expansion; no exact representable decimal result.
} 结果为: 3.44 0.00 0.00 0.00 0.01 0.21 五、BigDecimal常见异常 5.1、除法的时候出现异常 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.
结果为: 3.44 0.00 0.00 0.00 0.01 0.21 五、BigDecimal常见异常 5.1、除法的时候出现异常 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.
} 结果为: 3.44 0.00 0.00 0.00 0.01 0.21 五、BigDecimal常见异常 5.1、除法的时候出现异常 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.
领取专属 10元无门槛券
手把手带您无忧上云