public BigDecimal setScale(int newScale,RoundingMode roundingMode)
返回 BigDecimal,其标度为指定值,其非标度值通过此 BigDecimal 的非标度值乘以或除以十的适当次幂来确定,以维护其总值。
如果该操作减少标度,则非标度值必须被除(而不是乘),并且该值可以更改;在这种情况下,将指定的舍入模式应用到除法中。
参数:
newScale
- 要返回的
BigDecimal
roundingMode
- 要应用的舍入模式。
返回:
BigDecimal,其标度为指定值,其非标度值可以通过此 BigDecimal 保留一位小数:(
ROUND_HALF_UP 四舍五入模式)
Double perCent = obj.getNum() * 100.0 / obj.getTotal();
BigDecimal b = new BigDecimal(perCent);
perCent = b.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
其他模式:
ROUND_DOWN
接近零的舍入模式。在丢弃某部分之前始终不增加数字(即截短)。注意,此舍入模式始终不会增加计算值的大小。
ROUND_CEILING
BigDecimal 为正,则舍入行为与
ROUND_UP 相同;如果为负,则舍入行为与
ROUND_DOWN
ROUND_FLOOR
BigDecimal 为正,则舍入行为与
ROUND_DOWN 相同;如果为负,则舍入行为与
ROUND_UP
ROUND_HALF_UP
ROUND_UP 相同;否则舍入行为与
ROUND_DOWN
ROUND_HALF_DOWN
ROUND_UP 相同;否则舍入行为与
ROUND_DOWN
ROUND_HALF_EVEN
ROUND_HALF_UP 相同;如果为偶数,则舍入行为与
ROUND_HALF_DOWN
ROUND_UNNECESSARY
ArithmeticException。