舍入浮点数的最短函数c ++

时间:2015-07-21 09:46:22

标签: c++ rounding short

这个函数的最短形式(不改变它的名称)?

int NearestInteger(float N) 
{
    return round(N);
}

2 个答案:

答案 0 :(得分:2)

如果你有C ++ 11,你可以使用std::round功能。

否则,您可能需要使用其中一个取决于您的要求std::floorstd::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