谁能帮我解决 BigDecimal,我是新手
BigDecimal amount = new BigDecimal("24.33");
System.out.println(amount.setScale(2, RoundingMode.CEILING));
我期待得到 25.00 但我仍然得到 24.33 任何想法我哪里出错了?
谁能帮我解决 BigDecimal,我是新手
BigDecimal amount = new BigDecimal("24.33");
System.out.println(amount.setScale(2, RoundingMode.CEILING));
我期待得到 25.00 但我仍然得到 24.33 任何想法我哪里出错了?
试试这个 -
BigDecimal amount = new BigDecimal("24.33");
System.out.println(amount.setScale(0, RoundingMode.CEILING).setScale(2));
额外setScale(2)
是根据您的需要获得 25.00,没有额外setScale
您将获得 25 作为答案。
比例适用于小数点后的部分。你想要的是:
BigDecimal amount = new BigDecimal("24.33");
System.out.println(amount.setScale(0, RoundingMode.CEILING));
还要记住BigDecimal
s 是Immutable,因此所有操作都会返回一个新的 BigDecimal 来表示操作的结果。如果你不习惯它可以抓住你。