【日常记录】——对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); // 保留两位小数、四舍五入

相关文章
|
11月前
|
存储 Java
Java中-BigDecimal类型如何进行加减乘除运算?
Java中-BigDecimal类型如何进行加减乘除运算
82 0
BigDecimal加减乘除运算
BigDecimal加减乘除运算
156 0
Java 中BigDecimal类型的 加减乘除运算
Java 中BigDecimal类型的 加减乘除运算
1092 0
Java 中BigDecimal类型的 加减乘除运算
|
Java
小数的运算使用BigDecimal
小数的运算使用BigDecimal
104 0
小数的运算使用BigDecimal
BigDecimal类型数据保留两位小数即百分比运算
方法示例: DecimalFormat df = new DecimalFormat("0.00"); Object price = 2; Object price1 = 2.3; Object price2 = 2.
2821 0
Java使用BigDecimal保留double、float运算精度、保留指定位数有效数字、四舍五入
工具类 package ……; import java.math.BigDecimal; /** * Created by kongqw on 2015/12/10.
1004 0