目录
Java中的BigDecima不可以直接用+ - * / 这些直接操作,需要用特定的方法来进行处理
BigDecimal a = new BigDecimal(1);
BigDecimal b = new BigDecimal(2);
1 加,减,乘,除,取余
加:调用add()函数
BigDecimal res = a.add(b);
减:调用subtract()函数
BigDecimal res = a.subtract(b);
乘:调用multiply()函数
BigDecimal res = a.multiply(b);
除:调用multiply()函数
BigDecimal res = a.divide(b);
取余:调用divideAndRemainder()函数
BigDecimal a = new BigDecimal(1);
BigDecimal b = new BigDecimal(2);
BigDecimal[] res = a.divideAndRemainder(b);
返回一个长度为2的数组,第一个元素为商,第二个元素为余数
2 比较大小
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");
}
3 类型转换
int 转 BigDecimal
int i = 1;
BigDecimal a = new BigDecimal(i);
Lont 转 BigDecimal
long i = 1L;
BigDecimal a = new BigDecimal(i);
BigDecimal 转 Long
BigDecimal a = new BigDecimal(1);
long res = a.longValue();
BigDecimal 转 int
BigDecimal a = new BigDecimal(1);
int res = a.intValue();
4 处理小数:setScale()函数
setScale(1)
表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)
直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)
进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)
四舍五入(5则向上入),2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)
四舍五入(5则向下舍),2.35变成2.3