2011-11-21 2 views
1

경사가 정의되지 않은 값을 확인하는 방법을 알아 내려고합니다.이 경우 기울기가 수직 일 것입니다. NULL을 사용해 보았지만 작동하지 않는 것 같습니다.정의되지 않은 이중 값을 확인하는 방법은 무엇입니까?

double Point::Slope(Point &p2) 
{ 
    double slop = 0; 
    slop = (y - p2.y)/(x - p2.x); 

    if (slop == NULL) 
    { 
     slop = 10e100; 
    } 

    return slop; 
} 
+1

을 당신은 당신의 질문을 검토해야 몇 가지 대답을 수락하십시오! – karlphillip

+0

도움이 될 것입니다 http://stackoverflow.com/questions/570669/checking-if-a-double-or-float-is-nan-in-c/570694#570694 – Hauleth

+0

범위 밖의 내용을 정의해야합니다. 허용되는 값을 확인하고 그 값을 확인하십시오. –

답변

3

만약 "미등록"와 ('비수') 유모을 의미하는 경우에 '/'동작의 분모가 0이 아닌 것을 확인하여, 즉, 처음에 하나의 컴퓨팅 피해야한다. 둘째로, 당신은 언제나 나노를 확인할 수 있습니다.

#include <math.h> 
bool isnan(x); 

매뉴얼 페이지를보십시오.

+1

isnan은 표준 함수 AFAICT가 아닙니다. –

0

나는 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; 
} 
관련 문제