即使使用 cmath include,也无法在 Win32 C++ 项目中找到 round 函数

round function cannot be found in Win32 C++ project even with cmath include

我创建了一个空白的 Win32 C++ 项目。即使我包含 math.h 或 cmath 库,编译器仍会为 round 函数提供 C3861 未定义错误。

我试过以下方法

1. adding the /TC compile as C++ and using cmath
2. adding the include _MATH_DEFINES_DEFINED 

您要四舍五入为整数吗?

std::round() 不是 return int 值,

改为尝试:

int a = int(std::floor(var + 0.5));

更多解释:http://en.cppreference.com/w/cpp/numeric/math/round

Visual Studio 2012 (MSVC 11.0) 没有严格遵循 C++11,所以可能是它没有 std::round.

使用

inline double round(double value) { return value < 0 ? -std::floor(0.5 - value) : std::floor(0.5 + value); }
// analogously for float