日常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));
}
相关推荐
Pkmer1 分钟前
古法编程: 深度解析Java调度器Timer
java·后端
BduL OWED7 分钟前
将 vue3 项目打包后部署在 springboot 项目运行
java·spring boot·后端
棋子入局15 分钟前
C语言制作消消乐游戏(4)
c语言·开发语言·游戏
riNt PTIP21 分钟前
怎么下载安装yarn
java
imuliuliang25 分钟前
Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(上)
java·spring boot·后端
微刻时光25 分钟前
影刀RPA:循环相似元素列表深度解析与实战指南
java·人工智能·python·机器人·自动化·rpa·影刀
豆瓣鸡39 分钟前
Redis笔记(黑马点评)
java·redis·nosql
froginwe1139 分钟前
Python3 实例
开发语言
xiaoshuaishuai840 分钟前
C# ZLibrary数字资源分发
开发语言·windows·c#
淘矿人42 分钟前
Claude辅助算法设计与优化
人工智能·python·算法·microsoft·github·bug·pygame