如何检查Objective-C(iOS)中的NaN值

Ond*_*rej 52 xcode objective-c cgfloat ios

可能重复:
Objective-C - 浮动检查nan
确定NSNumber是否为NaN

我在CGFloat中遇到NaN值问题,如何检查数字是否有效?

到目前为止唯一有效的方法是:

if ([[NSString stringWithFormat:@"%f", output] isEqualToString:@"nan"]) {
    output = 0;
}
Run Code Online (Sandbox Code Playgroud)

这根本不是一个好的解决方案!:) ...而且我很确定我应该做的其他事情.

tho*_*mas 147

在math.h中有一个用于检查数字是否为nan inf等的定义(我认为你可以在没有导入的情况下使用它).

isnan(myValue)
Run Code Online (Sandbox Code Playgroud)

如果你遵循定义,你将最终得到

(x!=x)
Run Code Online (Sandbox Code Playgroud)

也有像isinf,其他一些有用的定义isnormal,ISFINITE,...