BigDecimal 四舍五入结果不一致

BigDecimal number=new BigDecimal(18.9045613);
System.out.print("RoundingMode四舍五入: " + number.setScale(2,RoundingMode.UP) ); //18.91
System.out.print("BigDecimal四舍五入: " + number.setScale(2,BigDecimal.ROUND_HALF_UP) );//18.90


为什么这两种四舍五入获得的值不一样?

上面的不是4舍5入。是无论值多少,都会进1.

http://wenku.baidu.com/link?url=8JI4IaCj1LAkJqentb6w9tETPWZvM5BvxOc_8M4NYKK-TGwifTwUKAPNLalI21tc9Bq9a4KIE-aFPlLHwOTWq71vcnePDvhCyDPrmpx9nDi

UP public static final RoundingMode UP

远离零方向舍入的舍入模式。始终对非零舍弃部分前面的数字加 1。注意,此舍入模式始终不会减少计算值的绝对值