BigDecimal.setScale 处理java小数点

时间:2022-12-05 19:21:21

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

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