6

在编程时,我经常发现自己需要计算以下内容:

x = (y / n) + (y % n ? 1 : 0);

或更明确地说:

x = y / n;
if (y % n != 0) {
   x = x + 1;
}

有没有更优雅的方式来实现这个值?不使用条件表达式可以实现吗?

4

1 回答 1

14

因此,您希望整数除法向上舍入而不是向下舍入。您可以通过添加n-1分子来伪造它:

x = (y + n - 1) / n;

这样,您可以将值四舍五入到刚好足以为您提供所需结果的值。

于 2012-08-09T19:26:10.073 回答