比较大小方法
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);