目标C – 检查nan
我有一个variables( float slope
),有时会打印出来的值为nan,因为有时发生0除法。
我正在尝试做一个if-else的时候发生。 我怎样才能做到这一点? if (slope == nan)
似乎没有工作。
两种方式,或多或less是等价的:
if (slope != slope) { // handle nan here }
要么
#include <math.h> ... if (isnan(slope)) { // handle nan here }
( man isnan
会给你更多的信息,或者你可以阅读所有关于它的C标准)
或者,您可以在分割之前检测分母是否为零(或者如果您只是最后使用斜坡上的atan
而不是进行其他计算,则使用atan2
)。
没有什么等于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。