NaN, acrónimo de Not a Number , es una excepción que suele ocurrir en los casos en que una expresión da como resultado un número que no está definido o no se puede representar . Se utiliza para operaciones de coma flotante. Por ejemplo:
- La raíz cuadrada de los números negativos
- División por cero
- Tomando el registro de cero o un número negativo, etc.
CPP
// C++ code to demonstrate NaN exception #include <cmath> #include <iostream> using namespace std; // Driver Code int main() { float a = 2, b = -2; // Prints the number (1.41421) cout << sqrt(a) << endl; // Prints "nan" exception // sqrt(-2) is complex number cout << sqrt(b) << endl; return 0; }
1.41421 -nan
¿Cómo comprobar NaN en C++?
Método 1: Usar el operador de comparación (“==”) .
En este método comprobamos si un número es complejo comparándolo consigo mismo. Si el resultado es verdadero, entonces el número no es complejo, es decir, real. Pero si el resultado es falso, se devuelve «nan», es decir, el número es complejo.
CPP
// C++ code to check for NaN exception // using "==" operator #include <cmath> #include <iostream> using namespace std; // Driver Code int main() { float a = sqrt(2); float b = sqrt(-2); // Returns true, a is real number // prints "Its a real number" a == a ? cout << "Its a real number" << endl : cout << "Its NaN" << endl; // Returns false, b is complex number // prints "Its nan" b == b ? cout << "Its a real number" << endl : cout << "Its NaN" << endl; return 0; }
Its a real number Its NaN
Método 2: Usar la función incorporada “isnan()”
Otra forma de verificar NaN es mediante el uso de la función «isnan()», esta función devuelve verdadero si un número es complejo; de lo contrario, devuelve falso. Esta función de biblioteca C está presente en el archivo de encabezado <cmath> .
CPP
// C++ code to check for NaN exception // using "isnan()" #include <cmath> #include <iostream> using namespace std; // Driver Code int main() { float a = sqrt(2); float b = sqrt(-2); // Returns false as a // is real number isnan(a) ? cout << "Its NaN" << endl : cout << "Its a real number" << endl; // Returns true as b is NaN isnan(b) ? cout << "Its NaN" << endl : cout << "Its a real number" << endl; return 0; }
Its a real number Its NaN
Este artículo es una contribución de Manjeet Singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA