数学舍入到始终为整数

Dam*_*ith 18 c#

我需要找到两个整数的除法并将其四舍五入到下一个上整数

例如 x = 7/y = 5 = 2 ; 这里x和y总是大于0

这是我目前的代码

 int roundValue = x % y > 0? x / y + 1: x / y;
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

Jon*_*eet 45

可以使用Math.Ceiling...但这需要转换为/从double值转换.

另一种方法是同时使用Math.DivRem两个部件.

public static int DivideRoundingUp(int x, int y)
{
    // TODO: Define behaviour for negative numbers
    int remainder;
    int quotient = Math.DivRem(x, y, out remainder);
    return remainder == 0 ? quotient : quotient + 1;
}
Run Code Online (Sandbox Code Playgroud)


Evr*_*glu 23

尝试 (int)Math.Ceiling(((double)x) / y)


Mil*_*jka 10

所有解决方案看起来太难了 对于x/y的上限值,请使用此

( x + y - 1 ) / y
Run Code Online (Sandbox Code Playgroud)