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