BigDecimal操作方法

167 阅读1分钟

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);

1
2.2、减法 subtract
a = a.subtract(b);

1
2.3、乘法 multiply
a = a.multiply(b);

1
2.4、除法 divide
a = a.divide(b);
2.5、计算百分比
String percentage = historyConsumeAmountSum.divide(historyChargeAmountSum, 4, RoundingMode.HALF_UP).
        multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP) + "%"

3.BigDecimal 处理小数

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

4.取余

divideAndRemainder( BigDecimal divisor )

BigDecimal[] c = a.divideAndRemainder(b); 1 返回一个BigDecimal数组,返回数组中包含两个元素,第一个元素为两数相除的商,第二个元素为余数。 例如:

 BigDecimal d = c[0].add( new BigDecimal(1));
 BigDecimal e = c[1].compareTo( new BigDecimal(0) ) == 0 ? c[0] : d ;