将BigDecimal向上舍入为整数值

Rod*_*nez 17 java math rounding bigdecimal

我有一个BigDecimal,其值为450.90,我想要向上舍入到下一个空洞整数值,然后打印没有任何小数点的整数值,就像这样;

Val:450.90 - > Rounded:451.00 - >输出:451

Val:100.00001 - > Rounded:101.00000产量:101

检查了一些解决方案,但我没有得到预期的结果,继承我的代码;

BigDecimal value = new BigDecimal(450.90);
value.setScale(0, RoundingMode.HALF_UP); //Also tried with RoundingMode.UP
return value.intValue();
Run Code Online (Sandbox Code Playgroud)

谢谢!

T.J*_*der 40

setScale 返回BigDecimal带有结果的new ,它不会更改您调用它的实例.因此,将返回值分配回value:

value = value.setScale(0, RoundingMode.UP);
Run Code Online (Sandbox Code Playgroud)

实例

我也把它改成了RoundingMode.UP因为你说你一直想要围捕.但根据您的需要,您可能需要RoundingMode.CEILING; 这取决于你想-451.2成为什么(-452[ UP]或-451[ CEILING]).了解RoundingMode更多.


prz*_*tel 6

使用:

value.setScale(0, RoundingMode.CEILING);
Run Code Online (Sandbox Code Playgroud)