【日常记录】——对BigDecimal除法运算时遇到的Bug

简介: 【日常记录】——对BigDecimal除法运算时遇到的Bug

最近在项目测试环境中,遇到这样一个问题;查看日志,报错信息如下:

通过定位发现:是在代码中使用BigDecimal 的divide方法时出现了异常。

检查发现:这是因为在BigDecimal 没有整除报的错误,因此我们需要向divide函数传入参数设置保留几位小数。

问题还原

下面通过一个测试代码演示没有整除的场景。

BigDecimal a = new BigDecimal(1);
BigDecimal b = new BigDecimal(3);
BigDecimal result = a.divide(b);
System.out.println("result = " + result);

处理办法

我们对其divide方法,设置参数传入几位小数,以及具体的取整模式即可。

BigDecimal result = a.divide(b,2,BigDecimal.ROUND_HALF_UP); // 保留两位小数、四舍五入

相关文章
|
19天前
|
Java
BigDecimal类型的数据如何做绝对值和相除求百分比
BigDecimal类型的数据如何做绝对值和相除求百分比
24 3
|
19天前
|
Java
BigDecimal类型的数据范围判断与加减乘除操作
BigDecimal类型的数据范围判断与加减乘除操作
17 0
|
4月前
|
SQL 存储 数据库
SQL 算术运算符:加法、减法、乘法、除法和取模的用法
存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用。它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在需要时调用执行。存储过程可以接受参数,使其更加灵活和通用。
63 0
BigDecimal加减乘除计算以及比较大小
BigDecimal加减乘除计算以及比较大小
75 0
BigDecimal加减乘除计算以及比较大小
BigDecimal加减乘除计算
BigDecimal加减乘除计算
68 0
2.2.4加减运算和溢出判断
2.2.4加减运算和溢出判断
BigDecimal加减乘除运算
BigDecimal加减乘除运算
138 0
2015年蓝桥杯 题7 加法变乘法 列举 (提交整数)
2015年蓝桥杯 题7 加法变乘法 列举 (提交整数)
实战小技巧18:BigDecimal除法使用不当导致精度问题
在使用BigDecimal的除法时,遇到一个鬼畜的问题,本以为的精度计算,结果使用返回0,当然最终发现还是使用姿势不对导致的,因此记录一下,避免后面重蹈覆辙
211 0
实战小技巧18:BigDecimal除法使用不当导致精度问题
|
Java
Java初学者作业——分别计算两个整数加、减、乘、除的结果并显示,要求除法保留两位小数。
Java初学者作业——分别计算两个整数加、减、乘、除的结果并显示,要求除法保留两位小数。
298 0
Java初学者作业——分别计算两个整数加、减、乘、除的结果并显示,要求除法保留两位小数。

热门文章

最新文章