是否有任何 Java 函数或 util 类以这种方式进行舍入:func(3/2) = 2?

2022-09-01 21:29:41

是否有任何 Java 函数或 util 以这种方式进行舍入:classfunc(3/2) = 2

Math.ceil()没有帮助,按名称来说应该这样做。我知道,但不需要它。BigDecimal


答案 1

Math.ceil()将始终向上舍入,但是您正在使用 执行整数除法。因此,由于在整数除法(非)中,上限为 。3/23/2 = 11.511

你需要做的是实现你想要的结果Math.ceil(3/2.0);

通过除以双倍量(),您最终可以进行浮点除法而不是整数除法。因此,和 的 总是 。2.03/2.0 = 1.5ceil()1.52


答案 2

有点黑魔法,你可以用整数来完成这一切:

// Divide x by n rounding up
int res = (x+n-1)/n