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

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

一、问题描述

直接上代码:

java 复制代码
@Test
public void test22() throws ParseException {
    System.out.println(new BigDecimal(0).divide(new BigDecimal(54)).setScale(2,BigDecimal.ROUND_HALF_UP));
}

报错内容:

java 复制代码
Non-terminating decimal expansion; no exact representable decimal result.

二、问题原因

原来JAVA中如果用BigDecimal做除法的时候一定要在divide方法中传递第二个参数,定义精确到小数点后几位,否则在不整除的情况下,结果是无限循环小数时,就会抛出以上异常。

三、问题解决

将代码修改成下面所示即可:

java 复制代码
@Test
public void test22() throws ParseException {
    System.out.println(new BigDecimal(0).divide(new BigDecimal(54),2,BigDecimal.ROUND_HALF_UP));
}
相关推荐
兆子龙10 小时前
ahooks useRequest 深度解析:一个 Hook 搞定所有请求
java·javascript
兆子龙10 小时前
React Suspense 从入门到实战:让异步加载更优雅
java·javascript
咕白m62512 小时前
Java 实现 Excel 转 HTML:完整示例
java
RealPluto13 小时前
Spring AOP 失效排查
java·spring
码路飞13 小时前
热榜全是 OpenClaw,但我用 50 行 Python 就造了个桌面 AI Agent 🤖
java·javascript
Nyarlathotep011313 小时前
LinkedList源码分析
java·后端
用户83071968408214 小时前
Java 告别繁琐数据统计代码!MySQL 8 窗口函数真香
java·sql·mysql
带刺的坐椅14 小时前
SolonCode v0.0.20 发布 - 编程智能体(新增子代理和浏览器能力)
java·ai·agent·solon·solon-ai·claude-code·openclaw
会员源码网15 小时前
数字格式化陷阱:如何优雅处理 NumberFormatException
java