У меня есть переменная (float slope), которая иногда будет иметь значение nan при распечатке, так как иногда происходит деление на 0.
Я пытаюсь сделать if-else, когда это произойдет. Как я могу это сделать? if (slope == nan) не работает.
Ответ 1
Два способа, которые более или менее эквивалентны:
if (slope != slope) {
// handle nan here
}
или
#include <math.h>
...
if (isnan(slope)) {
// handle nan here
}
(man isnan предоставит вам больше информации или вы сможете прочитать все об этом в стандарте C)
В качестве альтернативы вы можете обнаружить, что знаменатель равен нулю, прежде чем вы разделите его (или используйте atan2, если вы просто закончите с помощью atan на склоне, а не выполняете другие вычисления).
Ответ 2
Ничто не равно NaN - включая NaN. Поэтому проверьте x != x.
Ответ 3
if(isnan(slope)) {
yourtextfield.text = @"";
//so textfield value will be empty string if floatvalue is nan
}
else
{
yourtextfield.text = [NSString stringWithFormat:@"%.1f",slope];
}
Надеюсь, это сработает для вас.
Ответ 4
В Swift вам нужно сделать slope.isNaN, чтобы проверить, является ли это NaN.