我通常擅长谷歌搜索这样的东西,但这次我似乎找不到任何东西。
我从here下载了一些源代码,它使用了一个名为roundf
的函数。
我已经#include <math.h>
并且首先考虑添加#include <cmath>
但仍有问题。我似乎无法找出函数的起源......
是否有替代功能?或者有人知道它来自哪里,所以我可以包含头文件吗?
答案 0 :(得分:18)
roundf()
函数由C99定义,但MSVC实现的C99很少,因此Microsoft编译器无法使用它。
你可以使用这个:
float roundf(float x)
{
return x >= 0.0f ? floorf(x + 0.5f) : ceilf(x - 0.5f);
}
答案 1 :(得分:1)
您也可以使用升级库:
#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