日常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));
}
相关推荐
毕设源码-钟学长3 分钟前
【开题答辩全过程】以 农村困境儿童帮扶助学系统为例,包含答辩的问题和答案
java·eclipse
无限进步_4 分钟前
C语言宏的魔法:探索offsetof与位交换的奇妙世界
c语言·开发语言·windows·后端·算法·visual studio
白露与泡影4 分钟前
springboot中File默认路径
java·spring boot·后端
代码雕刻家7 分钟前
C语言关于换行符的注意事项
c语言·开发语言
heartbeat..10 分钟前
使用 Apache POI 实现 Excel 文件读写(导入 导出)操作的工具类
java·apache·excel·文件
咕咕嘎嘎102421 分钟前
C/C++内存对齐
java·c语言·c++
认真敲代码的小火龙23 分钟前
【JAVA项目】基于JAVA的图书管理系统
java·开发语言·课程设计
爱敲代码的小冰23 分钟前
js 时间的转换
开发语言·前端·javascript
缘三水23 分钟前
【C语言】14.指针(4)
c语言·开发语言·指针·语法
电子_咸鱼28 分钟前
【QT SDK 下载安装步骤详解 + QT Creator 导航栏使用教程】
服务器·开发语言·网络·windows·vscode·qt·visual studio code