BigDecimal四则运算其实所有实现都是⼀句代码,这⾥做个⼯具类只是⽅便查阅。
四则运算⼯具类:
import java.math.BigDecimal;
public class BigDecimalUntils {
// 默认保留3位数
public static final int SCALE = 3;
/**
* 加法
* @return a + b
*/
public static BigDecimal add(BigDecimal a, BigDecimal b) {
return a.add(b);
}
/**
* 减法
* @return a - b
*/
public static BigDecimal subtract(BigDecimal a, BigDecimal b) {
return a.subtract(b);
}
/**
* 乘法
* @return a * b
*/
public static BigDecimal multiply(BigDecimal a, BigDecimal b) {
return a.multiply(b);
}
/**
* 除法(默认保留3位⼩数)
* @return a / b
*/
public static BigDecimal divide(BigDecimal a, BigDecimal b) {
return a.divide(b, SCALE, BigDecimal.ROUND_UP);
}
/**
* 除法(默认保留x位⼩数)
* @return a / b
*/
public static BigDecimal divide(BigDecimal a, BigDecimal b, int x){
return a.divide(b, x, BigDecimal.ROUND_UP);
}
/**
* 保留x位⼩数
* @return 保留a的x位⼩数
*/
public static BigDecimal scale(BigDecimal a, int x) {
return a.setScale(x, BigDecimal.ROUND_UP);
}
}
测试代码:bigdecimal除法保留小数
public static void main(String[] args) {
BigDecimal a = new BigDecimal("7");
BigDecimal b = new BigDecimal("3");
System.out.println(add(a, b));
System.out.println(subtract(a, b));
System.out.println(multiply(a, b));
System.out.println(divide(a, b));
System.out.println(divide(a, b, 4));
System.out.println(scale(new BigDecimal(Math.PI), 5)); }
输出结果: