[objective-c] Objective-C-nan에 대한 float 검사

float slope가끔 0으로 나누기가 발생하기 때문에 출력 될 때 가끔 nan 값을 갖는 변수 ( )가 있습니다.

그럴 때 if-else를 시도하고 있습니다. 어떻게 할 수 있습니까? if (slope == nan)작동하지 않는 것 같습니다.



답변

다소 동등한 두 가지 방법 :

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

또는

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

( man isnan더 많은 정보를 제공하거나 C 표준에서 모든 내용을 읽을 수 있습니다)

또는 나누기를 수행하기 전에 분모가 0임을 감지 할 수 있습니다 (또는 다른 계산을 수행하는 대신 기울기에서 사용하는 atan2경우에만 사용 atan).


답변

자신을 NaN포함하여 동일하지 않습니다 NaN. 그래서 확인하십시오 x != x.


답변

 if(isnan(slope)) {

     yourtextfield.text = @"";
     //so textfield value will be empty string if floatvalue is nan
}
else
{
     yourtextfield.text = [NSString stringWithFormat:@"%.1f",slope];
}

이것이 당신을 위해 일하기를 바랍니다.


답변

Swift에서는 slope.isNaNNaN인지 확인 해야합니다 .


답변