Objective-C - проверка поплавка для nan

У меня есть переменная ( float slope ), которая иногда будет иметь значение nan при распечатке, так как иногда происходит деление на 0.

Я пытаюсь сделать if-else для когда что происходит. Как я могу это сделать? if (slope == nan) , похоже, не работает.

77
задан Cœur 10 January 2019 в 04:36
поделиться

2 ответа

Два способа, которые более или менее эквивалентны:

if (slope != slope) {
    // handle nan here
}

Или

#include <math.h>
...
if (isnan(slope)) {
    // handle nan here
}

( man isnan предоставит вам дополнительную информацию, или вы можете прочитать все об этом в стандарте C)

В качестве альтернативы вы можете определить, что знаменатель равен нулю, прежде чем выполнять деление (или использовать atan2 , если вы просто собираетесь использовать atan на склоне вместо других вычисление).

203
ответ дан 24 November 2019 в 10:46
поделиться

Ничто не равно NaN , включая сам NaN . Итак, проверьте x! = X .

35
ответ дан 24 November 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: