我试图找出一种方法来检查斜率的未定义值,在这种情况下它将是垂直的。我尝试过使用NULL
,但这似乎不起作用。
double Point::Slope(Point &p2)
{
double slop = 0;
slop = (y - p2.y) / (x - p2.x);
if (slop == NULL)
{
slop = 10e100;
}
return slop;
}
答案 0 :(得分:3)
如果你的意思是“未定义”的nan('不是数字'),你应该首先避免计算一个,即通过检查'/'操作的分母不为零。其次,您可以随时检查纳米
#include <cmath>
bool std::isnan(x); // since C++11
bool isnan(x); // pre C++11, from the C math library, defined as macro
请参阅手册页,或cppreference。
答案 1 :(得分:1)
在C ++中,NULL == 0.这不是你想要的。
也许这可以帮到你:http://www.gnu.org/s/hello/manual/libc/Infinity-and-NaN.html
尝试使用isnan(float)函数。
答案 2 :(得分:0)
我建议一起避免被零除(顺便说一下......为什么不把它称为slope
而不是slop
?):
double Point::Slope(Point&p2)
{
double slope = 0;
double xDelta = x - p2.x;
double yDelta = y - p2.y;
if (xDelta != 0)
{
slope = yDelta / xDelta;
}
return slope;
}