[Qt] Zwracana wartość nan.

0

Cześć, rysuje sobie wykres z danego przedziału, ale czasem wywala mi się program. Problemem jest np. funkcja log, która nie ma oczywiście wartości poniżej zera na osi x, więc jak zrobię coś takiego:

 QMap<double,double> points;
 points.insert(k,drawfunction(-2));
 painter.drawText(QPointF(100,100),QString::number(drawfunction(-2))); 

to wywala mi program, bo zwracana wartość to jakieś nan. Nie znalazłem czegoś takiego nigdzie w dokumentacji, jak się zabezpieczyć, aby mi w przypadku gdy jest to nan, nie próbowało wstawiać do kontenera?

0

http://en.wikipedia.org/wiki/NaN

Krótko: funkcja, która to "zwraca" jest do d**y albo podajesz jej bzdurne argumenty. Co to jest te drawfunction?

0
template<typename T>
inline bool isnan(T value)
{
    return value != value;
}
0

Pewnie, że podaje jej bzdurne argumenty. Przecież pisze w kodzie -2 jako parametr, a drawfunction do funkcja która zawiera w sobie: return log(x); przecież nie będę zmieniał potem w 10 miejscach z log na np. sin(x). Jak się przed tym zabezpieczyć, bo takie coś nie działa:

 k=-2;
 y = drawfunction(k);
 if( y != nan)
       points.insert(k,y);
0

No to nie podawaj bzdurnych argumentów albo zrób tą funkcję tak żeby sprawdzała czy ma poprawne argumenty czy nie

0

Dzięki Will, teraz działa jak trzeba.

1 użytkowników online, w tym zalogowanych: 0, gości: 1