У меня есть переменная ( float slope
), которая иногда будет иметь значение nan при распечатке, так как иногда происходит деление на 0.
Я пытаюсь сделать if-else для когда что происходит. Как я могу это сделать? if (slope == nan)
, похоже, не работает.
Два способа, которые более или менее эквивалентны:
if (slope != slope) {
// handle nan here
}
Или
#include <math.h>
...
if (isnan(slope)) {
// handle nan here
}
( man isnan
предоставит вам дополнительную информацию, или вы можете прочитать все об этом в стандарте C)
В качестве альтернативы вы можете определить, что знаменатель равен нулю, прежде чем выполнять деление (или использовать atan2
, если вы просто собираетесь использовать atan
на склоне вместо других вычисление).
Ничто не равно NaN
, включая сам NaN
. Итак, проверьте x! = X
.