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. 
如何设计QR反激变换器 摘要:本文分析了基于GaN技术的PD适配器市场现状,重点探讨了准谐振反激变换器(QR Flyback)的工作原理及设计方法。文章首先介绍了反激变换器的三种工作模式(CCM、DCM、CRM/QR)及其特点,指出QR模式通过谷底开通技术能显著降低开关损耗。随后以65W适配器为例,详细阐述了变压器参数设计流程,包括匝比确定、原边电感计算和绕组匝数设计等关键步骤。文章强调QR反激变换器凭借高效率、小体积和低成本优势,已成为20W-65W PD适配器的主流拓扑方案,配合GaN技术进一步提升了功率密度和便携性。 阅读详情

相关推荐

深入解析MSPM0系列Keil开发中‘ti_msp_dl_config.h‘缺失问题的根源与修复

本文深入解析TI MSPM0系列Keil开发中'ti_msp_dl_config.h'文件缺失问题的根源与修复方法。该错误常见于编译时提示file not found,主要因SysConfig工具未正确生成或工程路径配置错误导致。文章提供了从环境检查、手动生成文件到工程配置调整的系统化解决方案,帮助开发者快速解决这一常见KEIL开发难题。

gold的博客 970

【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

保姆级教程:用Verilog手把手实现一个MIPI CSI-2 D-PHY接收器(附PPI接口时序详解)

本文提供了一份详细的Verilog实现MIPI CSI-2 D-PHY接收器的教程,重点解析了PPI接口时序和deskew数据对齐技术。通过模块划分、时钟域处理、状态机设计和错误恢复机制等实战内容,帮助开发者掌握高速数据接收的核心技术,适用于嵌入式视觉系统开发。

weixin_30619101的博客 513

BigDecimal在使用除法时的报错

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

qq_57548915的博客 1276

双内核架构 Xenomai 4 安装教程

双内核 Xenomai 4 安装指南

^_^ 4469

UE4游戏逆向实战:从HOOK明文包到自定义发包的完整流程(附加密算法解析)

本文详细解析了UE4游戏网络通信的逆向工程完整流程。从定位线程发包点、HOOK拦截明文封包,到逆向分析加密解密算法,最终实现自定义组包与加密发送。文章结合实战案例,为游戏安全研究和技术人员提供了一套清晰、可操作的方法论。

weixin_29009081的博客 1236

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

CarPlay wired(USB)连接方案

CarPlay的wired(USB)的连接方案要求车载设备至少要支持USB2.0 Hi-Speed,支持USB Host Mode,该模式要求车载设备能够工作在USB device模式下,因为Apple设备在CarPlay中是作为USB Host的。而通常情况下,车载设备USB是工作在USB Host模式的,而外接的USB设备是工作在USB Device模式的,因而在这种情况下的CarPlay wired(USB)连接方案中就需要进行USB的模式切换。模式切换完成后便是Apple设备(USB HOST)的枚

Ke8323的博客 1万+

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

1、电路分析知识全解析:从基础到实践应用

本博客全面解析电路分析知识体系,涵盖从基础的电压、电流、电阻概念到复杂的交流电路、瞬态分析和高级应用如滤波器与变压器等内容。适合电子技术专业学生和技术爱好者学习,提供详细的知识结构、学习路径、实践示例以及丰富的学习资源,包括计算机模拟工具Multisim和PSpice的使用指导。通过理论与实践结合,帮助学习者掌握电路分析的核心技能,为电子工程和电力系统等相关领域打下坚实基础。

iii12的专栏 159

数字图像处理:直方图匹配或规定化Histogram Matching (Specification)原理及感悟

本文介绍了连续图像和数字图像直方图匹配(直方图规定化)的原理、处理过程,并提供了案例进行了讲解。可以看到,直方图均衡处理是直方图匹配的一个重要桥梁。 最后,对于直方图规定化这个翻译个人觉得很low,个人感觉叫指定直方图更好理解,但Histogram Specification怎么翻译确实不太好把握,因此还是叫Histogram Matching直方图匹配最好。

老猿Python 2880

java divide 方法_BigDecimal的divide方法报错

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

weixin_42495057的博客 1929

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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异常

异常报错信息:Non-terminating decimal expansion; no exact representable decimal result. java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 问题原因:通

suncici1101 1727

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

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

weixin_39836536的博客 1603
上一篇: 对接阿里大于短信平台报错
下一篇: SQL中varchar类型在where中注意事项
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值