java的BigDecimal常用方法

比较大小方法

1、小于

// a <  b
if(a.compareTo(b) == -1){ 
    System.out.println("a小于b"); 
}

2、小于等于

// a <= b
if(a.compareTo(b) < 1) { 
    System.out.println("a小于等于b"); 
}

3、大于

// a > b
if(a.compareTo(b) == 1){ 
    System.out.println("a大于b"); 
}

4、大于等于

// a >= b
if(a.compareTo(b) > -1){ 
    System.out.println("a大于等于b"); 
}

5、等于

// a = b
if(a.compareTo(b) == 0){ 
    System.out.println("a等于b"); 
}

加减乘除

        BigDecimal bignum1 = new BigDecimal("10");  

        BigDecimal bignum2 = new BigDecimal("5");  

1、加法

BigDecimal bd = null;  
  
//加法  
bd =  bignum1.add(bignum2);       
System.out.println("和 是:" + bd );  

2、减法  

BigDecimal bd = null;  
  
//减法  
bd =  bignum1.subtract(bignum2);       
System.out.println("差 是:" + bd );  

3、乘法  

BigDecimal bd = null;  
  
//乘法  
bd =  bignum1.multiply(bignum2);       
System.out.println("乘积 是:" + bd );  

4、除法  

BigDecimal bd = null;  
  
//除法  
bd =  bignum1.divide(bignum2);       
System.out.println("商 是:" + bd );  

// 保留2位小数 
BigDecimal result = bignum1.divide(bignum2, 2, RoundingMode.HALF_UP); 

其他方法

1、保留2位小数

BigDecimal bd = new BigDecimal(12.34567);
        //调用函数 参数2表示保留两位小数,
/**
* 参数1:保留的位数
* 参数2:方式 ROUND_HALF_UP表示四舍五入
*/
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("结果: "+bd);

2、其他保留小数

ROUND_UP: 保留设置的小数,剩余小数位数大于零则进一位
ROUND_DOWN:保留设置的小数,剩余小数后面都直接舍弃
ROUND_HALF_UP:保留设置的小数,剩余小数后一位进行四舍五入
ROUND_HALF_DOWN:保留设置的小数,剩余小数后一位进行五舍六入
ROUND_CEILING:保留设置的小数,如果值是正数则按ROUND_UP变化,值是负数则按ROUND_DOWN变化
ROUND_FLOOR:保留设置的小数,如果值是正数则按ROUND_DOWN变化,值是负数则按ROUND_UP变化
ROUND_HALF_EVEN:保留设置的小数,进行四舍六入,如果刚好是五,则看前一位是偶数就舍弃,奇数就则进一位
ROUND_UNNECESSARY:保留设置的小数,如果存在剩余小数位且不为0会报错:java.lang.ArithmeticException

BigDecimal num = new BigDecimal("20");
BigDecimal num1 = new BigDecimal("3");
//保留两位小数,剩余小数位数大于零则进一位
BigDecimal num2 = num.divide(num1,2,BigDecimal.ROUND_UP);
//保留两位小数,剩余小数后面都直接舍弃
BigDecimal num3 = num.divide(num1,2,BigDecimal.ROUND_DOWN);

3、取绝对值 abs()

BigDecimal num = new BigDecimal("-3");
//获取绝对值
BigDecimal num1 = num.abs();

 4、取反数 negate()

BigDecimal num = new BigDecimal("3");
//获取相反数
BigDecimal num1 = num.negate();

5、比较取最大值 max

BigDecimal num = new BigDecimal("3");
BigDecimal num1 = new BigDecimal("4");
//比较两个数,取最大值
BigDecimal num2 = num.max(num1);

6、比较取最小值 min

BigDecimal num = new BigDecimal("3");
BigDecimal num1 = new BigDecimal("4");
//比较两个数,取最小值
BigDecimal num2 = num.min(num1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值