这个函数的最短形式(不改变它的名称)?
int NearestInteger(float N)
{
return round(N);
}
答案 0 :(得分:2)
如果你有C ++ 11,你可以使用std::round功能。
否则,您可能需要使用其中一个取决于您的要求std::floor或std::ceil
答案 1 :(得分:1)
如果你没有C ++ 11,你可以这样做:
int NearestInteger(float N) {
return int(floor(N + 0.5f));
}
但是,对于大型浮动,它可能无法正常工作。首先,如果您的号码不适合 int ,则可以返回任何垃圾箱。其次,对于大于2 ^ 24的数字,它可能会返回错误的结果,因为not each integer is exactly representable in single precision float number。