将大十进制数向上舍入为整数值

2022-09-01 09:22:47

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

价值: 450.90 -> 四舍五入: 451.00 -> 输出: 451

价值: 100.00001 -> 四舍五入: 101.00000 输出: 101

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

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

谢谢!


答案 1

setScale 返回一个新的结果,它不会更改您调用它的实例。因此,将返回值赋回 :BigDecimalvalue

value = value.setScale(0, RoundingMode.UP);

实际示例

我也把它改成了,因为你说你一直想四舍五入。但根据您的需求,您可能需要;这取决于你想成为什么([]或[])。有关详细信息,请参阅舍入模式RoundingMode.UPRoundingMode.CEILING-451.2-452UP-451CEILING


答案 2

用:

value.setScale(0, RoundingMode.CEILING);