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。