BigDecimal的精度保留
RoundingMode的几种取值方式(demo中默认保留两位)
roundingMode | RoundingMode | 取值方式 | demo |
---|---|---|---|
0 | ROUND_UP | 直接丢掉保留位数后面的,保留位数最后一个数加1。(负号不参与计算) | 9.284->9.29; -5.326->-5.33 |
1 | ROUND_DOWN | 直接丢掉保留位数后面的 | 9.284->9.28; -5.326->-5.32 |
2 | ROUND_CEILING | 如果是正数用UP规则,负数用DOWN规则 | 9.284->9.29; -5.326->-5.32 |
3 | ROUND_FLOOR | 如果是正数用DOWN规则,负数用UP规则 | 9.284->9.28; -5.326->-5.33 |
4 | ROUND_HALF_UP | (>=5)四舍五入 | 9.235->9.24; -5.326->-5.33 |
5 | ROUND_HALF_DOWN | (>5)五舍六入 | 9.235->9.23; -5.326->5.33 |
6 | ROUND_HALF_EVEN | 四舍六入五留双(银行家舍入),如果是5的则看前一奇偶,奇加偶舍 | 9.235->9.24; 9.265->9.26; |
7 | ROUND_UNNECESSARY | 断言请求的操作具有精确的结果,因此不需要舍入。如果对获得精确结果的操作指定此舍入模式,则抛出ArithmeticException | 9.23->9.23;9.231->ArithmeticException |