Aracılığıyla paylaş


isnan, _isnan, _isnanf

Kayan nokta değerinin NaN ("Sayı Değil") olup olmadığını sınar.

Sözdizimi

int isnan(
   /* floating-point */ x
); /* C-only macro */

int _isnan(
   double x
);

int _isnanf(
   float x
); /* x64 only */

template <class T>
bool isnan(
   T x
) throw(); /* C++ only */

Parametreler

x
Test etmek için kayan nokta değeri.

Dönüş değeri

C'de, isnan bağımsız değişken x Bir NaN ise makro ve _isnan ve _isnanf işlevleri sıfır olmayan bir değer döndürür; aksi takdirde 0 döndürür.

C++'ta, isnan bağımsız değişken x bir NaN ise şablon işlevi döndürürtrue; aksi takdirde döndürürfalse.

Açıklamalar

NaN değeri kendisine eşit veya başka bir NaN değeriyle karşılaştırmadığından, bir değeri algılamak için bu işlevlerden veya makrolardan birini kullanmanız gerekir. Bir kayan nokta işleminin sonucu belirtilen tür için IEEE-754 kayan nokta biçiminde temsil edilemiyorsa Bir NaN oluşturulur. Bir NaN'nin çıkış için nasıl temsillendiği hakkında bilgi için bkz printf. .

C++ olarak derlendiğinde makro isnan tanımlanmamıştır ve bunun yerine bir isnan şablon işlevi tanımlanır. Makroyla aynı şekilde davranır, ancak tamsayı yerine tür bool değeri döndürür.

ve _isnanf işlevleri Microsoft'a _isnan özeldir. _isnanf işlevi yalnızca x64 için derlendiğinde kullanılabilir.

Gereksinimler

Yordam Gerekli üst bilgi (C) Gerekli üst bilgi (C++)
isnan, _isnanf <math.h> <math.h> veya <cmath>
_isnan <float.h> <float.h> veya <cfloat>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Ayrıca bkz.

Matematik ve kayan nokta desteği
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnormal