Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
Lihat juga
Dukungan matematika dan titik mengambang
fpclassify
_fpclass, _fpclassf
isfinite, , _finite_finitef
isinf
isnormal