Wie kann ich nach einem undefinierten Wert eines Double suchen?

  • Ich versuche, einen Weg zu finden, um nach einem undefinierten Wert einer Neigung zu suchen. In diesem Fall wäre es vertikal. Ich habe versucht, NULL zu verwenden, aber das scheint nicht zu funktionieren.

     double Point::Slope(Point &p2)
    {
       double slop = 0;
       slop = (y - p2.y) / (x - p2.x);
    
       if (slop == NULL)
       {
          slop = 10e100;
       }
    
       return slop;   
    }
     
    22 November 2011
    Mateen UlhaqOskar Walker
3 answers
  • Wenn Sie nan ("keine Zahl") mit "undefined" meinen, sollten Sie es vermeiden, an erster Stelle eins zu berechnen, d. h. Zweitens können Sie immer nach nan suchen, indem Sie die Man-Pages oder cppreference .

    22 March 2018
    Walter
  • In C ++ ist NULL == 0. Dies ist nicht das, wonach Sie suchen.

    Möglicherweise hilft Ihnen dies: http://www.gnu.org/s/hello/manual/libc/Infinity-and-NaN .html

    Probieren Sie die Funktion isnan (float) aus.

    22 November 2011
    Clement Bellot
  • Ich würde empfehlen, die Division durch Null zu vermeiden (übrigens ... warum nennen Sie es nicht slope anstelle von 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;   
    }
     
    22 November 2011
    Gary Buyn