任何人都可以帮助BigDecimal,我是其中的新手 我想要24.33到25.00的回合 我只需要执行天花板操作 所以我做了类似的事情
BigDecimal amount = new BigDecimal("24.33");
System.out.println(amount.setScale(2, RoundingMode.CEILING));
我期待得到25.00,但我仍然得到24.33 我知道哪里出错了?
答案 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));
另外请记住BigDecimal
是Immutable,因此所有操作都返回一个表示操作结果的新BigDecimal。如果你不习惯,可以赶上你。