programing

Objective-C-nan에 대한 플로트 검사

nasanasas 2020. 10. 13. 07:53
반응형

Objective-C-nan에 대한 플로트 검사


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인지 확인 해야합니다 .

참고 URL : https://stackoverflow.com/questions/3471988/objective-c-float-checking-for-nan

반응형