BigDecimal运算
1、比较
BigDecimal可以通过compareTo方法来进行比较。
返回的结果是int类型,-1表示小于,0是等于,1是大于。
例如:
BigDecimal a = new BigDecimal(3);
BigDecimal b = new BigDecimal(2);
if ( a.compareTo(b) == 1 ) {
//等同于a>b
}
2、四则运算
2.1、加法 add
a = a.add(b);
2.2、减法 subtract
a = a.subtract(b);
2.3、乘法 multiply
a = a.multiply(b);
2.4、除法 divide
a = a.divide(b);
- 注意: BigDecimal使用方法自身不会改变,结果需要接收 !( 不可直接写
a.add(b)
)
2.5、BigDecimal 处理小数
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
3、取余
divideAndRemainder( BigDecimal divisor )
BigDecimal[] c = a.divideAndRemainder(b);
返回一个BigDecimal数组,返回数组中包含两个元素,第一个元素为两数相除的商,第二个元素为余数。
例如:
BigDecimal d = c[0].add( new BigDecimal(1));
BigDecimal e = c[1].compareTo( new BigDecimal(0) ) == 0 ? c[0] : d ;