前言:因业务需要进行大量的高精度数值计算因此采用了 BigDecimal类型进行处理
- BigDecimal类型的加、减、乘、除操作
BigDecimal bigDecimal1 = new BigDecimal(1);
BigDecimal bigDecimal2 = new BigDecimal(1);
/*
* @Description: 加法 add()
*/
BigDecimal sum = bigDecimal1.add(bigDecimal2);
/*
* @Description: 减法 subtract()
*/
BigDecimal subtract = bigDecimal1.subtract(bigDecimal2);
/*
* @Description: 乘法 multiply()
*/
BigDecimal multiply = bigDecimal1.multiply(bigDecimal2);
/*
* @Description: 除法 divide() 结果 保留两位小数
*/
BigDecimal divide = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_HALF_UP);
- 数值取余
BigDecimal bigDecimal1 = new BigDecimal(1);
BigDecimal bigDecimal2 = new BigDecimal(1);
/*
* @Description: 保留两位小数 setScale()
*/
BigDecimal setScale = bigDecimal1.setScale(2, BigDecimal.ROUND_HALF_UP);
/*
* @Description: 保留两位向上进位 setScale()
*/
BigDecimal setScale1 = bigDecimal1.setScale(2, BigDecimal.ROUND_UP);
/*
* @Description: 保留两位向下取舍 setScale()
*/
BigDecimal setScale2 = bigDecimal1.setScale(2, BigDecimal.ROUND_HALF_DOWN);
/*
* @Description: 保留两位四舍五入 setScale()
*/
BigDecimal setScale3 = bigDecimal1.setScale(2, BigDecimal.ROUND_DOWN);
- 取绝对值
/*
* @Description: 绝对值 abs()
*/
BigDecimal abs = bigDecimal1.abs();
- 判断两数值大小
BigDecimal bigDecimal1 = new BigDecimal(1);
BigDecimal bigDecimal2 = new BigDecimal(1);
/*
* @Description: 比较大小 bigDecimal1 大于 bigDecimal2
*/
if(bigDecimal1.compareTo(bigDecimal2) == 1){
//bigDecimal1 大于 bigDecimal2
}
/*
* @Description: 比较大小 bigDecimal1 小于 bigDecimal2
*/
if(bigDecimal1.compareTo(bigDecimal2) == -1){
//bigDecimal1 小于 bigDecimal2
}
/*
* @Description: 比较大小 bigDecimal1 等于 bigDecimal2
*/
if(bigDecimal1.compareTo(bigDecimal2) == 0){
//bigDecimal1 等于 bigDecimal2
}
/*
* @Description: 比较大小 bigDecimal1 大于等于 bigDecimal2
*/
if(bigDecimal1.compareTo(bigDecimal2) > -1){
//bigDecimal1 大于等于 bigDecimal2
}
/*
* @Description: 比较大小 bigDecimal1 小于等于 bigDecimal2
*/
if(bigDecimal1.compareTo(bigDecimal2) < -1){
//bigDecimal1 小于等于 bigDecimal2
}