价格BigDecimal的加减乘除、小数四舍五入、比较

 

num2必须改用传入String类型

 

    //加法
        BigDecimal result1 = num1.add(num2);

 
        //减法
        BigDecimal result2 = num1.subtract(num2);

 
        //乘法
        BigDecimal result3 = num1.multiply(num2);

     //除法
        BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);
 
        //绝对值
        BigDecimal result4 = num3.abs();

 
       

 

 

小数部分操作

 

1. ROUND_DOWN

 

BigDecimal b = new BigDecimal("2.225667").setScale(2, BigDecimal.ROUND_DOWN);
System.out.println(b);//2.22 直接去掉多余的位数

 

 

 

 

2. ROUND_UP

 

BigDecimal c = new BigDecimal("2.224667").setScale(2, BigDecimal.ROUND_UP);
System.out.println(c);//2.23 跟上面相反,进位处理
 

 

 

 

3. ROUND_CEILING

 

天花板(向上),正数进位向上,负数舍位向上

 

BigDecimal f = new BigDecimal("2.224667").setScale(2, BigDecimal.ROUND_CEILING);
System.out.println(f);//2.23 如果是正数,相当于BigDecimal.ROUND_UP
 
BigDecimal g = new BigDecimal("-2.225667").setScale(2, BigDecimal.ROUND_CEILING);
System.out.println(g);//-2.22 如果是负数,相当于BigDecimal.ROUND_DOWN

 

 

 

 

4. ROUND_FLOOR

 

地板(向下),正数舍位向下,负数进位向下

 

BigDecimal h = new BigDecimal("2.225667").setScale(2, BigDecimal.ROUND_FLOOR);
System.out.println(h);//2.22 如果是正数,相当于BigDecimal.ROUND_DOWN
 
BigDecimal i = new BigDecimal("-2.224667").setScale(2, BigDecimal.ROUND_FLOOR);
System.out.println(i);//-2.23 如果是负数,相当于BigDecimal.ROUND_HALF_UP

 

 

 

 

5. ROUND_HALF_UP

 

BigDecimal d = new BigDecimal("2.225").setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("ROUND_HALF_UP"+d); //2.23 四舍五入(若舍弃部分>=.5,就进位)

 

 

 

 

6. ROUND_HALF_DOWN

 

BigDecimal e = new BigDecimal("2.225").setScale(2, BigDecimal.ROUND_HALF_DOWN);
System.out.println("ROUND_HALF_DOWN"+e);//2.22 四舍五入(若舍弃部分>.5,就进位)

 

pow() 立方计算  

BigDecimal bigDecimal=BigDecimal.TEN;
System.out.println(bigDecimal.pow(3));  //1000

 

 

数值比较

BigDecimal a = new BigDecimal ("1");
BigDecimal b = new BigDecimal ("2");
 
//使用compareTo方法比较 a、b不能为null
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");
}

 

posted @ 2021-04-03 17:18  yvioo  阅读(204)  评论(0编辑  收藏  举报