我有一个变量,由于有时会发生除法,因此有时会在打印出时float slope
具有值。nan
0
当这种情况发生时,我正在尝试做一个 if-else。我怎样才能做到这一点?if (slope == nan)
似乎不起作用。
我有一个变量,由于有时会发生除法,因此有时会在打印出时float slope
具有值。nan
0
当这种情况发生时,我正在尝试做一个 if-else。我怎样才能做到这一点?if (slope == nan)
似乎不起作用。
两种方式,或多或少是等价的:
if (slope != slope) {
// handle nan here
}
或者
#include <math.h>
...
if (isnan(slope)) {
// handle nan here
}
(man isnan
将为您提供更多信息,或者您可以在 C 标准中阅读所有相关信息)
或者,您可以在进行除法之前检测到分母为零(或者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.isNaN
检查它是否为 NaN。