2

誰かがBigDecimalを手伝ってくれますか、私はその中の初心者です24.33から25.00に丸めたいのですが、天井操作を実行する必要があるので、このようなことをしました

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));

また、BigDecimalImmutableであるため、すべての操作は操作の結果を表す新しい BigDecimal を返します。慣れないと引っかかります。

于 2012-05-23T21:37:47.530 に答える