日常BUG——Java使用Bigdecimal类型报错

  •           :是江迪呀
  • ✒️本文关键词日常BUGBUG问题分析
  • ☀️每日   一言存在错误说明你在进步!

一、问题描述

直接上代码:

@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));
}

你可能感兴趣的:(遇到的BUG和问题,bug,java,开发语言)