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)四舍五入,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
注意:
1、scale指的是小数位后的位数,比如123.456的scale为3;
scale是BigDecimal类中的方法:
BigDecimal b = new BigDecimal("123.456");
b.scale();//3
- 1
- 2
- 1
- 2
2、roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种;
3、实例
new BigDecimal(Double.parseDouble(succRate) / 24).setScale(2, BigDecimal.ROUND_HALF_UP).toString();
new BigDecimal(svcSuccData.get("succRate").toString()).setScale(2, BigDecimal.ROUND_HALF_UP).toString()