一种有效的方法来计算浮点后的下一个更高的整数?

gct*_*gct -4 c c++

出乎意料的是,我找不到关于此的简单参考,我想计算一下:

float x = /*...*/;
float next = nextint(x);
Run Code Online (Sandbox Code Playgroud)

其中next严格大于x(即,如果x是整数,则返回下一个更高的整数)。理想情况下没有分支。

eer*_*ika 6

您似乎想要+ 1:

 float next = floorf(x) + 1; // or std::floor
Run Code Online (Sandbox Code Playgroud)

请注意,这为您提供了数学上的下一个整数,四舍五入为最接近的可表示值,对于较大的值而言,它本身x就可以x。在这种情况下,这不会产生严格较大的可表示整数。您应该考虑这是否是您想要的。