BigDecimal的divide方法报错

从BigDecimal.setScale()报错说起:一次搞懂Java中RoundingMode的实战避坑指南 本文深入解析Java中BigDecimal.setScale()与RoundingMode的实战应用,帮助开发者避免金融计算中的精度陷阱。通过详细对比8种舍入模式的差异及适用场景,特别是金融领域常用的HALF_EVEN模式,提供多步运算精度守则和性能优化技巧,确保精确计算与业务合规。 阅读详情
  • 报错:
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
  • 报错语句:
a.divide(b));
  • 原因:

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

  • 解决方法:
a.divide(b, 2, BigDecimal.ROUND_HALF_UP);
  • 总结:

注意这个divide方法有两个重载的方法,一个是传两个参数的,一个是传三个参数的:

//两个参数的方法:
//传入除数
@param divisor value by which this {@code BigDecimal} is to be divided. 
//传入round的模式
@param roundingMode rounding mode to apply. 

//三个参数的方法:
//传入除数
@param divisor value by which this {@code BigDecimal} is to be divided. 
//传入精度
@param scale scale of the {@code BigDecimal} quotient to be returned. 
//传入round的模式
@param roundingMode rounding mode to apply. 
【TM1650】STM8S TM1650芯片控制程序 以下为.h文件: #ifndef __TM1650_I2C_H #define __TM1650_I2C_H #include "stm8s.h" #include "stm8s_gpio.h" #include "tim1.h" #include "usart2.h" #include <iostm8s103f3.h> #include <intrinsics.... 阅读详情

相关推荐

旋转矩阵的左乘与右乘

旋转矩阵左右乘的详细讲解

qq_46619194的博客 3329

【Java】BigDecimal中的divide方法报错,Exception in thread "main" java.lang.ArithmeticException:

一、问题 在使用BigDecimal做除法时,报错如下: Exception in thread “main” java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 二、解决办法: 三、原因 1、d...

陶洲川的博客 3470

VIL-SLAM论文翻译:Stereo Visual Inertial LiDAR Simultaneous Localization and Mapping

文章目录写在前面摘要1.引言2.相关工作3.系统概述4.视觉前端5.双目视觉惯性里程计A. IMU预积分因子B. 非结构化视觉因子C. 优化和边缘化6. 激光建图A. LiDAR扫描去畸变B. 帧到地图配准7. LiDAR增强的闭环A. 回环检测B. 回环约束C. 全局位姿图优化D. 重定位8. 实验结果A.平台和软件B.测试和结果C. EuRoCMAV数据集测试9.结论 写在前面 写作参考: robot L 开源代码: 开源代码链接 论文原文: 原文链接 摘要 SLAM是移动和空中机器人的一项基本任务

JaydenQ的博客 2321

BigDecimal在使用除法时的报错

报错可能是由于除法运算导致的非终止小数扩展引起的。当使用BigDecimal进行除法运算时,如果结果是一个无限循环的小数,会抛出ArithmeticException异常。设置参数,结果取两位小时,规则为四舍五入。

qq_57548915的博客 1276

利用ENVI处理TIF文件,把多个tif整合到一个完整的tif,例如2003-2011年的tif整合到一个tif上。

利用ENVI处理TIF文件,把多个tif整合到一个完整的tif,例如2003-2011年的tif整合到一个tif上。

unique_sir的博客 1万+

C# chart以鼠标所在位置为中心进行缩放

以前都用labview做一些软件,但给出去总是会遇到版本,安装包过大等一些问题,于是想自学C#,记录一下使用过程中遇到的一些问题和解决措施,便于日后回顾。 在这个项目中需要绘制折线图,由于数据比较大,需要对图表进行缩放操作,以鼠标为中心对图表进行缩放,在网上查找了一些资料没找到我想要的,于是自己想了一个解决方案,可以基本实现,但略显繁琐,由于刚开始学习C#,对一些操作不太了解,若以后遇...

fei的博客 6363

Bigdecimal做除法(divide)运算时报错:Non-terminating decimal expansion; no exact representable decimal result.

BigDecimal autoareameasure=work.getAutoareameasure(); //计算自动计算亩数和人工录入亩数相差范围值 BigDecimal areameasureZC=rgAreameasure.subtract(autoareameasure); Double roundVal=Double.valueOf(String.valueOf...

cxws110的博客 1505

YOLOv11改进 | 模型知识蒸馏篇 | 利用模型蒸馏改进YOLOv11进行无损涨点 | 离线蒸馏(附代码 + 完整文件 + 解析教程)

这篇文章给大家带来的最新改进是模型的蒸馏,利用教师模型指导学生模型从而进行模型的涨点,本文的内容不仅可以用于论文中,在目前的绝大多数的工作中模型蒸馏是一项非常重要的技术,所以大家可以仔细学习一下本文的内容,本文从YOLOv8的项目文件为例,进行详细的修改教程,文章内包括完整的修改教程,针对小白我出了视频修改教程,如果你还不会我提供了修改后的文件大家直接运行即可,所以说不用担心不会适用!模型蒸馏真正的无损涨点,蒸馏你只看这一篇文章就足够了!欢迎大家订阅我的专栏一起学习YOLO!

Snu77的博客 4322

BigDecimal坑点:小数除不尽报错/除数为0报错

除数为0 double 或float类型,我们知道,如果除数为0,a>0,a/0的值为无穷大,-a/0为无穷小,0/0的值为NaN,这三个不会直接报错,可以进行比较。 但是如果使用BigDecimal是会报错的。。。。 小数除不尽 如1/3.0这种,double,float本身有精确度,就不会报错 BigDecimal会报Non-terminating decimal expans...

yu_duan_hun的博客 8222

数据分享|2023年OSM道路数据(全国,分省,分市)

首先这个工作非常有必要的,因为我们正常使用的道路的分类都是基于包括城市快速路、城市主干路、城市次干路这个体系的,大家对于这个分类体系应该更熟悉,但是OSM地图的道路分类又不是完全按这个来的,所以非常有必要重新分类;搞清楚道路类型是我们使用道路数据做很多工作的基础,比如我们在使用道路数据的时候,经常需要预估道路的行车速度,而这个速度一般就是根据道路类型来的,比如高架路的车速肯定就比城市支路快很多!下载分为两种情况,第一种是下载小区域的数据,比如下载一个街区的数据,第二种为下载整个中国范围的。

JData_Engineer的博客 4306

使用abagen工具箱获取基于脑区的基因表达矩阵

脑区模板定义了您感兴趣的脑区的空间位置。abagen提供了一些预定义的脑区模板,您可以选择使用,也可以使用自定义的脑区模板。它提供了一种简便的方式来获取基于脑区的基因表达矩阵。abagen需要使用Allen脑图谱数据来获取基因表达矩阵。您可以使用abagen内置的下载功能来获取这些数据。这就是使用abagen工具箱获取基于脑区的基因表达矩阵的详细步骤。通过按照上述步骤操作,您可以轻松获取并使用Allen脑图谱数据中的基因表达信息。一旦您加载了脑区模板,您可以使用abagen来获取基于脑区的基因表达矩阵。

web_bug407的博客 1326

BigDecimal除法使用异常

记录一下 如果不指定保留小数位数,在遇到除不尽的情况下就会报错 遇见问题1: 除数小于被除数,先除以再设置位数,会不正确。效果如下 除不尽的情况,小数位不精准。效果如下 BigDecimal做除法时,尽量使用divide(BigDecimal divisor, int scale, int roundingMode),这个方法 divisor:被除数 scale保留小数位数 roundingMode保留小数时采用的方法,一般使用BigDecimal.ROUND_UP(四舍五入)改完版本 改完版本

文文的博客 1405

【目标跟踪】多目标跟踪的评价工具motmetrics怎么使用?

多目标跟踪,通过motmetrics测试评价对应的视频。

聿默的博客 5368

java divide 方法_BigDecimal的divide方法报错

报错:java.lang.ArithmeticException:Non-terminatingdecimalexpansion;noexactrepresentabledecimalresult.报错语句:a.divide(b));原因:JAVA中如果用BigDecimal做除法的时候一定要在divide方法中传递第二个参数,定义精确到小数点后几位,否则在不整除的情况下,结果是无...

weixin_42495057的博客 1929

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java 使用BigDecimal,正弦函数sin(x)级数计算其值

private static BigDecimal bigDecimal(String val){ return new BigDecimal(val); } public static BigDecimal sin3(BigDecimal x) { //把大于 -2PI 和 2PI 的值放入区间内 BigDecimal rSign = bigDecimal("1"); // int rSign = 1; i.

修也 1431

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

bigdecimal除法不四舍五入_BigDecimal除法方法divide()保留位问题

在使用BigDecimal除法方法divide()时,如果处理不当代码会报异常import java.math.BigDecimal;public class BigDecimalTest {public static void main(String[] args) {BigDecimal b1 = new BigDecimal("64.7024");//24.698,24.702BigDeci...

weixin_39874795的博客 2967

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java:Non-terminating decimal expansion; no exact representable decimal result解决

Java:Non-terminating decimal expansion; no exact representable decimal result解决

lDemoni的博客 1435

BigDecimal做除法运算报java.lang.ArithmeticException: Non-terminating decimal expansion; no exact represent

今天在使用两个BigDecimal类型的数字做除法运算时,出现了一个如下的异常信息: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常

弹指天下 8200

BigDecimal的除法运算 报错 Non-terminating decimal expansion; no exact representable decimal result.

Non-terminating decimal expansion; no exact representable decimal result. 今天干活跑别人接口的时候遇到一个报错,记录一下 这个错误一般出现在BigDecimal的除法运算中,如: //像这样不做小数位数处理的话就有可能会报错BigDecimal result= num1.divide(num2); 正确的: //设...

SIX___SIX的博客 3612

java divide 用法_Java关于BigDecimal的介绍及用法(二)

一、BigDecimal格式化由于NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。以利用BigDecimal对货币和百分比格式化为例。首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDe...

weixin_30173361的博客 8018

BigDecimal divide除法除不尽报错

用BigDecimal做除法的时候,直接拿起两数怼上除法有时候会出现除不尽就会报错, 列如: BigDecimal a = new BigDecimal(10); BigDecimal re = a.divide(new BigDecimal(3)); System.out.println(re);...

jasdolphin的博客 2963

BigDecimal 之 divide() 方法的问题

使用 BigDecimal 做除法的时候,会有两种情况出现: 一、能够整除 程序正常执行,无错误。 二、不能整除 程序报错。 异常信息如下: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 解决方案 不能整除时,需加上精度 或 roun...

a_good_child的博客 1538

使用BigDecimal的divide报异常

使用BigDecimal的divide报异常 图片: 出现这个的原因是BigDecimal的divide方法需要取具体的小数位。 解决方法如下:

weixin_51361773的博客 740

BigDecimal加减乘除计算

BigDecimal的运算——加减乘除 首先是bigdecimal的初始化 这里对比了两种形式,第一种直接value写数字的值,第二种用string来表示 我们对其进行加减乘除绝对值的运算,其实就是Bigdecimal的类的一些调用 BigDecimal num1 = new BigDecimal(0.005); BigDecimal num2 = new BigDecimal(1000000); BigDecimal num3 = new BigDecimal(-1000000); //尽

weixin_49562132的博客 7万+

BigDecimal加减乘除使用

分享知识 传递快乐 简介 Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算。Float和Double只能用来做科学计算或者是工程计算;在金融计算中,对数字精度要求较高,必须使用 BigIn...

旷野历程 4301

bigdecimal divide用法_好程序员Java培训分享BigDecimal的用法

  好程序员Java培训分享BigDecimal的用法,如果对数值结果精度要求很高,那么就可以使用BigDecimal,BigDecimal可以精准的控制小数点后面的数字Java培训  1. 实例 BigDecimal 对象  通常会使用 String 和 int 构造方法实例出 BigDecimal 对象,即  new BigDecimal(String val);  new BigDecima...

weixin_39836536的博客 1603
上一篇: Java 8 日期和时间的API
下一篇: 对接阿里大于短信平台报错
小许子是逗星人
博客等级 码龄11年 2粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值