11

我通常擅长谷歌搜索这样的东西,但这次我似乎找不到任何东西。

我从这里下载了一些源代码,它使用了一个名为roundf.

我已经有了#include <math.h>并且作为第一个想法添加#include <cmath>但仍然有问题。我似乎无法找出函数的来源......

有替代功能吗?或者有谁知道它来自哪里,所以我可以包含头文件?

4

2 回答 2

19

roundf()函数由 C99 定义,但 MSVC 实现的 C99 很少,因此它不适用于 Microsoft 编译器。

你可以使用这个:

float roundf(float x)
{
   return x >= 0.0f ? floorf(x + 0.5f) : ceilf(x - 0.5f);
}
于 2013-11-09T23:47:56.243 回答
1

您还可以使用 boost 库:

#include <boost/math/special_functions/round.hpp>

const double a = boost::math::round(3.45); // = 3.0
const int b = boost::math::iround(3.45); // = 3
于 2015-04-02T10:13:48.250 回答