在BigDecimal中使用setScale

时间:2012-05-23 21:31:33

标签: java bigdecimal

任何人都可以帮助BigDecimal,我是其中的新手 我想要24.33到25.00的回合 我只需要执行天花板操作 所以我做了类似的事情

BigDecimal amount = new BigDecimal("24.33");
System.out.println(amount.setScale(2, RoundingMode.CEILING));

我期待得到25.00,但我仍然得到24.33 我知道哪里出错了?

2 个答案:

答案 0 :(得分:2)

试试这个 -

BigDecimal amount = new BigDecimal("24.33");  
System.out.println(amount.setScale(0, RoundingMode.CEILING).setScale(2));  

额外的setScale(2)是你想要的25.00,没有额外的setScale,你将获得25作为答案。

答案 1 :(得分:1)

比例适用于小数点后的部分。你想要的是:

BigDecimal amount = new BigDecimal("24.33");
System.out.println(amount.setScale(0, RoundingMode.CEILING));

另外请记住BigDecimalImmutable,因此所有操作都返回一个表示操作结果的新BigDecimal。如果你不习惯,可以赶上你。