Java BigDecimal 除法运算错误: Non-terminating decimal expansion - 解决方法
"new BigDecimal(divisor).divide(new BigDecimal(dividend)).multiply(new BigDecimal(100)).setScale(2,RoundingMode.HALF_UP)"\n这行代码为什么会提示"Non-terminating decimal expansion; no exact representable decimal result."错误内容:这个错误是因为在使用BigDecimal进行除法运算时,结果可能会是无限小数,无法精确表示为一个有限的十进制数。在你的代码中,可能是因为被除数或除数的值导致了这种情况。\n\n要解决这个问题,你可以考虑使用divide方法的重载版本,其中可以指定一个精度和舍入模式。例如,你可以将精度设置为一个较大的值,比如100或1000,并使用RoundingMode的适当舍入模式来处理结果。这样做可以确保结果是一个有限的十进制数。\n\n以下是一个使用精度为1000和HALF_UP舍入模式的示例代码:\n\nnew BigDecimal(divisor).divide(new BigDecimal(dividend), 1000, RoundingMode.HALF_UP)\n\n请注意,根据你的具体需求,你可能需要选择不同的精度和舍入模式。
原文地址: https://www.cveoy.top/t/topic/qAyB 著作权归作者所有。请勿转载和采集!