Non-terminating decimal expansion; no exact representable decimal result.
在使用BigDecimal做出发运算时,如果没有指定小数点位数,在除不尽的时候,就会出现java.lang.ArithmeticException: Non-terminating decimal...expansion; no exact representable decimal result....return eg:65.32 */ public static String ADivideB(BigDecimal a,BigDecimal b){ String result...a.divide(b,4).setScale(2,BigDecimal.ROUND_HALF_UP) + ""; return result
在开发中,我们使用BigDecimal的时候,在做除法计算的时候,抛出: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 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.");
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。
一、背景 今天在计算库存消耗百分比(消耗的库存/总库存)的时候遇到了一个错误,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...= a.divide(b); System.out.println(result); } catch (ArithmeticException e) {...try { System.out.println(result); } catch (ArithmeticException e) { // 取近似值处理...result = 1.4142135623730950488016887; System.out.println(result); }...= a.divide(b, 2, BigDecimal.ROUND_HALF_UP); System.out.println("运算结果为: " + result); } catch
因为精度不一样 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 num = new BigDecimal("1.2345"); // num变量并没有变化,还是4位小数; num.setScale(2, RoundingMode.HALF_UP); // result...BigDecimal result = num.setScale(2, RoundingMode.HALF_UP); 知识点:我们要理解不可变的特性,不要出现理解上的歧义,导致业务出现问题。
{ BigDecimal ten = new BigDecimal(10); BigDecimal three= new BigDecimal(3); BigDecimal result...= ten.divide(three); System.out.println(result.toString()); } 执行结果报错: Exception in thread "main"...java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result...{ BigDecimal ten = new BigDecimal(10); BigDecimal three= new BigDecimal(3); BigDecimal result...= ten.divide(three, 2, BigDecimal.ROUND_HALF_UP); System.out.println(result.toString()); } 执行结果:
} 结果为: 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.
BigDecimal除法可能出现不能整除的情况,比如 4.5/1.3,这时会报错 Exception in thread “main” 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元无门槛券
手把手带您无忧上云