round()for C在C中

我需要一个简单的浮点舍入函数,因此:

double round(double);

round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1

我可以找到ceil()和floor()在math.h – 但不是round()。

它是存在于标准C库中的另一个名称,还是它缺少?

最佳答案
在C 98标准库中没有round()。你可以自己写一个:

double round(double d)
{
  return floor(d + 0.5);
}

在C 98标准库中没有循环函数的可能原因是它实际上可以以不同的方式实现。上面是一个常见的方式,但有其他如round-to-even,这是较少偏见,一般更好,如果你要做很多舍入;它实现有点更复杂。

转载注明原文:round()for C在C中 - 代码日志