在使用C#或Java等语言时,我正在考虑如何显示分页控件.
如果我想要以每页y块的形式显示x项,那么需要多少页?
给定整数值,x并且yC和C++都返回作为q = x/y浮点等效的底数的商.我对一种返回天花板的方法很感兴趣.例如,ceil(10/5)=2和ceil(11/5)=3.
显而易见的方法包括:
q = x / y;
if (q * y < x) ++q;
Run Code Online (Sandbox Code Playgroud)
这需要额外的比较和乘法; 我见过的其他方法(事实上使用)涉及铸造为float或double.是否有更直接的方法可以避免额外的乘法(或第二个除法)和分支,并且还可以避免作为浮点数进行转换?
我很想知道如何将数字舍入到最接近的第十个整数.例如,如果我有:
int a = 59 / 4;
Run Code Online (Sandbox Code Playgroud)
以浮点计算的14.75; 如何将数字存储为"a"中的15?
我需要将两个数字分开并将其四舍五入.有没有更好的方法来做到这一点?
int myValue = (int) ceil( (float)myIntNumber / myOtherInt );
Run Code Online (Sandbox Code Playgroud)
我发现不得不投两个不同的时间.(extern int cast只是为了关闭警告)
注意我必须内部转换才能浮动
int a = ceil(256/11); //> Should be 24, but it is 23
^example
Run Code Online (Sandbox Code Playgroud)