最近做的电商项目里价格计算用的BigDecimal用的比较多,来这里记一记,免得老是忘掉
/**
* 初始化和加减乘除算法
*/
public class BigDecimalExp {
private void bigDecimalOperation(){
// 初始化
BigDecimal a = new BigDecimal("0.00");//String
BigDecimal num1 = new BigDecimal(1.3);//double
BigDecimal num2 = new BigDecimal(45);//int
BigDecimal num3 = new BigDecimal(-1000000);//int
//尽量用字符串的形式初始化
BigDecimal num12 = new BigDecimal("1.3");
BigDecimal num22 = new BigDecimal("45");
BigDecimal num32 = new BigDecimal("-1000000");
/**
* 加法 add()函数
* 减法subtract()函数
* 乘法multiply()函数
* 除法divide()函数
* 绝对值abs()函数
*/
//加法
BigDecimal result1 = num1.add(num2);
BigDecimal result12 = num12.add(num22);
//减法
BigDecimal result2 = num1.subtract(num2);
BigDecimal result22 = num12.subtract(num22);
//乘法
BigDecimal result3 = num1.multiply(num2);
BigDecimal result32 = num12.multiply(num22);
//绝对值
BigDecimal result4 = num3.abs();
BigDecimal result42 = num32.abs();
//除法
BigDecimal result5 = num2.divide(num1,2, RoundingMode.HALF_UP);
System.out.println(result5);
BigDecimal result52 = num22.divide(num12,2,BigDecimal.ROUND_HALF_UP);
System.out.println(result52);
}
/**
* BigDecimal比较大小
*/
public class BigDecimalCompare {
/**
* 前提为a、b均不能为null
*/
public void compare(){
//BigDecimal a = new BigDecimal("");
//BigDecimal b = new BigDecimal("");
if(a.compareTo(b) == -1){
System.out.println("a小于b");
}
if(a.compareTo(b) == 0){
System.out.println("a等于b");
}
if(a.compareTo(b) == 1){
System.out.println("a大于b");
}
if(a.compareTo(b) > -1){
System.out.println("a大于等于b");
}
if(a.compareTo(b) < 1){
System.out.println("a小于等于b");
}
}
}