我有一个变量(float slope
),有时在打印时会有一个nan值,因为有时会出现0除法。
我正试图在发生这种情况时做一个if-else。我怎样才能做到这一点? if (slope == nan)
似乎不起作用。
答案 0 :(得分:200)
两种或多或少等同的方式:
if (slope != slope) {
// handle nan here
}
或者
#include <math.h>
...
if (isnan(slope)) {
// handle nan here
}
(man isnan
会为您提供更多信息,或者您可以在C标准中阅读所有相关信息)
或者,您可以在进行除法之前检测到分母为零(或者如果您最终在斜率上使用atan2
而不是进行其他计算,则使用atan
)。
答案 1 :(得分:35)
没有任何东西等于NaN
- 包括NaN
本身。请检查x != x
。
答案 2 :(得分:5)
if(isnan(slope)) {
yourtextfield.text = @"";
//so textfield value will be empty string if floatvalue is nan
}
else
{
yourtextfield.text = [NSString stringWithFormat:@"%.1f",slope];
}
希望这对你有用。
答案 3 :(得分:2)
在Swift中,您需要var _left = 25;
var _right = 25;
var _top = 210;
var _bottom = 30;
// [...] (inside dd object)
pageMargins: [left, top, right, bottom],
来检查它是否是NaN。