- 😜作 者:是江迪呀
- ✒️本文关键词:
日常BUG
、BUG
、问题分析
- ☀️每日 一言 :
存在错误说明你在进步!
一、问题描述
直接上代码:
@Test
public void test22() throws ParseException {
System.out.println(new BigDecimal(0).divide(new BigDecimal(54)).setScale(2,BigDecimal.ROUND_HALF_UP));
}
报错内容:
Non-terminating decimal expansion; no exact representable decimal result.
二、问题原因
原来JAVA中如果用BigDecimal
做除法的时候一定要在divide方法中传递第二个参数,定义精确到小数点后几位,否则在不整除的情况下,结果是无限循环小数时,就会抛出以上异常。
三、问题解决
将代码修改成下面所示即可:
@Test
public void test22() throws ParseException {
System.out.println(new BigDecimal(0).divide(new BigDecimal(54),2,BigDecimal.ROUND_HALF_UP));
}