以下代码产生错误:std::numeric_limits<double>::epsilon()
未定义错误。
使用numeric_limits<double>::epsilon
也会产生此错误。
#ifndef _USE_MATH_DEFINES
#define _USE_MATH_DEFINES
#endif // !_USE_MATH_DEFINES
#include <math.h>
#include <limits.h>
class plusCartesianPoly {
public:
static bool isClose(double a, double b)
{
if (fabs(a-b) <= std::numeric_limits::epsilon())
return true;
return(false);
}
};
答案 0 :(得分:5)
numeric_limits
在limits
中声明,而不是limits.h
,这是climits
的C版本(顺便提一句,math.h
是{C}版本{ {1}}):
cmath
答案 1 :(得分:4)
<limits.h>
包含C标准库
您需要<limits>
才能使用C ++标准库函数。