BigDecimal 加减乘除 比较大小 setScale(精度处理)
1、运算 BigDecimal bignum1 = new BigDecimal("6"); BigDecimal bignum2 = new BigDecimal("2"); BigDecimal bignum3 = null; //加法 bignum3 = bignum1.add(bignum2); System.out.println("和 是:" + bignum3);//8 //减法 bignum3 = bignum1.subtract(bignum2); System.out.println("差 是:" + bignum3);//4 //乘法 bignum3 = bignum1.multiply(bignum2); System.out.println("积 是:" + bignum3);//12 //除法 bignum3 = bignum1.divide(bignum2); System.out.println("商 是:" + bignum3);//32、比较
判断一个BigDecimal的金额是否大于0,
BigDecimal amt= new BigDecimal("-10");
int i=amt.compareTo(BigDecimal.ZERO);
if(i==-1){
//amt小于0 例如:amt=-10.00
}
if(i==0){
//amt等于0, amt=0.00
}
if(i==1){
//amt大于0 例如:amt=10.00
}
3、精度
BigDecimal b1 = new BigDecimal("33.45666").setScale(2, BigDecimal.ROUND_DOWN); //直接去掉多余的位数
BigDecimal b2 = new BigDecimal("33.45655").setScale(2, BigDecimal.ROUND_UP); //直接进位
BigDecimal b3 = new BigDecimal("33.45655").setScale(2, BigDecimal.ROUND_CEILING); // 天花板(向上),正数进位向上,负数舍位向上
BigDecimal b4 = new BigDecimal("-33.45655").setScale(2, BigDecimal.ROUND_FLOOR); //地板(向下),正数舍位向下,负数进位向下
BigDecimal b5 = new BigDecimal("33.45555").setScale(2, BigDecimal.ROUND_HALF_UP);// 四舍五入(若舍弃部分>=.5,就进位)
BigDecimal b6 = new BigDecimal("33.45555").setScale(2, BigDecimal.ROUND_HALF_DOWN); // 四舍五入(若舍弃部分>.5,就进位)
BigDecimal b7 = new BigDecimal("33.45655").setScale(2, BigDecimal.ROUND_HALF_EVEN);
// 如果舍弃部分左边的数字为偶数,则作 ROUND_HALF_DOWN ;
// 如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP
欢迎点评,共同学习,共同进步