即使使用 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));
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
我创建了一个空白的 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));
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