一、背景描述 今天在计算新老消息百分比时(新收到的消息/总消息)的时候遇到了一个错误,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的divide方法进行除法时当两个数不整除,...
在编程中,当我们尝试将一个分数(尤其是循环小数)转换为十进制数时,经常会遇到“Non-terminating decimal expansion;no exact representable decimal result”这样的异常。这是因为有些分数在十进制下是无法精确表示的,它们的小数部分是无限的,且不会进入循环。例如,1/3在十进制下是0.333333333…,它的小数部分永远不会...
1. 解释什么是“non-terminating decimal expansion(非终止小数扩展)” "Non-terminating decimal expansion" 指的是一个十进制小数在转换为二进制或其他基数时,其小数部分无法以有限长度的形式精确表示。这种情况通常发生在那些无法被分母(在二进制中是2的幂次)整除的分数上。对于十进制小数来说,如果它包含无限循环的...
今天在计算库存消耗百分比(消耗的库存/总库存)的时候遇到了一个错误,java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 通过异常的描述,我们知道这是因为,某些场景下对于如1/3会得到一个无穷小数,这个时候需要定义计算结果要保留到小数点后几位,否则就会抛出上面...
amaltings ensuite maltings ensuite[translate] aNo. of first inspections conducted. 否。 第一检查进行的。[translate] aSTANDARDIZE 规范化[translate] aNon-terminating decimal expansion; no exact representable decimal result. 非终止小数扩展; 没有确切的能上演的小数结果。[translate]...
Non-terminating decimal expansion; no exact representable decimal result. 异常原因: Java 中使用 BigDecimal 做除法运算的时候,值有可能是无限循环的小数; 正确写法:需要在 divide 方法中传递另外两个参数 【scale】、【roundingMode】,来定义小数点后的精确位数 ...
我们在使用BigDecimal进行精确计算时常常会出现Non-terminating decimal expansion; no exact representable decimal result.异常。 出现这个异常的原因在于 BigDecimal 是不可变的、任意精度的有符号十进制数,所以可以做精确计算。但在除法中,准确的商可能是一个无限长的十进制扩展;例如,1 除以 3 所得的商。我们在做除...
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 从上面的异常信息可以看出是在进行decimal 类型的计算时候出错了,代码如下 if(yearincome!=null){ BigDecimal num = new BigDecimal(12.00); BigDecimal monthIncom = yearincome.divide(num); mainLoanMessageVO...
我们在使用BigDecimal进行精确计算时常常会出现Non-terminating decimal expansion; no exact representable decimal result.异常。 出现这个异常的原因在于 BigDecimal 是不可变的、任意精度的有符号十进制数,所以可以做精确计算。但在除法中,准确的商可能是一个无限长的十进制扩展;例如,1 除以 3 所得的商。我们在做除...