日常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));
}
相关推荐
Tan38511 分钟前
如何在 OfficeAI 上配置 API Key(图文教程)
开发语言·人工智能·c#·api·教程·officeai
LYOBOYI1237 分钟前
qt的事件传播机制
java·前端·qt
PM老周13 分钟前
产品路线图怎么做:从愿景到里程碑的 6 步落地法
开发语言·安全·阿里云·团队开发·个人开发
短剑重铸之日17 分钟前
《深入解析JVM》第四章:JVM 调优
java·jvm·后端·面试·架构
whltaoin18 分钟前
25年12月26日-福州某科技公司一面面试原题
java·linux·docker·面试·职场和发展·k8s·springboot
小陈phd20 分钟前
Python MCP 工具开发入门:Server、Client 和 LLM 集成
开发语言·python·github
Yang-Never21 分钟前
Android 内存泄漏 -> ViewModel持有Activity/Fragment导致的内存泄漏
android·java·开发语言·kotlin·android studio
剑之所向22 分钟前
c# 中间表
开发语言·c#
fanruitian23 分钟前
SpringBoot 调用springai ollama
java·spring boot·后端
蓝影铁哥25 分钟前
浅谈5款Java微服务开发框架
java·linux·运维·开发语言·数据库·微服务·架构