81

除算が発生することがあるため、出力時にfloat slope値を持つ変数があります。nan 0

私はそれが起こったときにif-elseをしようとしています。どうやってやるの?if (slope == nan)動作しないようです。

4

4 に答える 4

210

多かれ少なかれ同等である2つの方法:

if (slope != slope) {
    // handle nan here
}

または

#include <math.h>
...
if (isnan(slope)) {
    // handle nan here
}

man isnanより多くの情報を提供するか、C標準ですべてを読むことができます)

または、除算を行う前に分母がゼロであることを検出することもできます(または、他の計算を行う代わりに、勾配でatan2使用することになった場合に使用します)。atan

于 2010-08-12T21:03:09.170 に答える
36

それに匹敵するものはありませんNaNNaNそれ自体を含みます。だからチェックしてくださいx != x

于 2010-08-12T21:03:16.363 に答える
6
 if(isnan(slope)) {

     yourtextfield.text = @"";
     //so textfield value will be empty string if floatvalue is nan
}
else
{
     yourtextfield.text = [NSString stringWithFormat:@"%.1f",slope];
}

これがあなたのために働くことを願っています。

于 2012-10-01T11:31:33.177 に答える
2

slope.isNaNSwiftでは、それがNaNであるかどうかを確認するために行う必要があります。

于 2016-02-24T20:22:39.487 に答える