isnan, _isnan, _isnanf

Menguji apakah nilai floating-point adalah NaN ("Bukan Angka").

Sintaks

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 */

Parameter

x
Nilai floating-point untuk diuji.

Nilai hasil

Di C, isnan makro dan _isnan fungsi dan _isnanf mengembalikan nilai bukan nol jika argumen x adalah NaN; jika tidak, nilai tersebut mengembalikan 0.

Di C++, isnan fungsi templat mengembalikan true jika argumen x adalah NaN; jika tidak, fungsi tersebut mengembalikan false.

Keterangan

Karena nilai NaN tidak dibandingkan dengan dirinya sendiri atau dengan nilai NaN lainnya, untuk mendeteksinya, Anda harus menggunakan salah satu fungsi atau makro ini. NaN dihasilkan ketika hasil operasi floating-point tidak dapat diwakili dalam format titik pecahan IEEE-754 untuk jenis yang ditentukan. Untuk informasi tentang bagaimana NaN diwakili untuk output, lihat printf.

Saat dikompilasi sebagai C++, isnan makro tidak ditentukan, dan isnan fungsi templat didefinisikan sebagai gantinya. Ini bereaksi dengan cara yang sama seperti makro, tetapi mengembalikan nilai jenis bool alih-alih bilangan bulat.

Fungsi _isnan dan _isnanf khusus Microsoft. Fungsi _isnanf ini hanya tersedia saat dikompilasi untuk x64.

Persyaratan

Rutin Header yang diperlukan (C) Header yang diperlukan (C++)
isnan, _isnanf <matematika.h> <math.h> atau <cmath>
_isnan <float.h> <float.h> atau <cfloat>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Baca juga

Dukungan matematika dan titik mengambang
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnormal