2

谁能帮我解决 BigDecimal,我是新手

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

我期待得到 25.00 但我仍然得到 24.33 任何想法我哪里出错了?

4

2 回答 2

2

试试这个 -

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

额外setScale(2)是根据您的需要获得 25.00,没有额外setScale您将获得 25 作为答案。

于 2012-05-23T21:36:07.027 回答
1

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

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

还要记住BigDecimals 是Immutable,因此所有操作都会返回一个新的 BigDecimal 来表示操作的结果。如果你不习惯它可以抓住你。

于 2012-05-23T21:37:47.530 回答