Home »
C++ programming language
isnan() Function with Example in C++
C++ isnan() function: Here, we are going to learn about the isnan() function with example of cmath header in C++ programming language?
Submitted by IncludeHelp, on May 17, 2020
C++ isnan() function
isnan() function is a library function of cmath header, it is used to check whether the given value is a NaN (Not-A-Number). It accepts a value (float, double or long double) and returns 1 if the given value is NaN; 0, otherwise.
Syntax
Syntax of isnan() function:
In C99, it has been implemented as a macro,
macro isnan(x)
Syntax
In C++11, it has been implemented as a function,
bool isnan (float x);
bool isnan (double x);
bool isnan (long double x);
Parameter(s)
- x – represents a value to be checked as a NaN.
Return value
The returns type of this function is bool, it returns 1 if the x is NaN; 0, otherwise.
Sample Input and Output
Input:
float x = 0.0f/0.0f;
Function call:
isnan(x);
Output:
1
Input:
float x = sqrt(-1.0f);
Function call:
isnan(x);
Output:
1
Input:
float x = 10.0f;
Function call:
isnan(x);
Output:
0
Example
C++ code to demonstrate the example of isnan() function:
// C++ code to demonstrate the example of
// isnan() function
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
cout << "isnan(sqrt(-10.0f)): " << isnan(sqrt(-10.0f)) << endl;
cout << "isnan(0.0f/0.0f): " << isnan(0.0f / 0.0f) << endl;
cout << "isnan(0.0f/1.0f): " << isnan(0.0f / 1.0f) << endl;
cout << "isnan(1.0f/0.0f): " << isnan(1.0f / 0.0f) << endl;
float x = sqrt(-1.0f);
// checking using the condition
if (isnan(x)) {
cout << x << " is a NaN." << endl;
}
else {
cout << x << " is not a NaN." << endl;
}
x = sqrt(2);
if (isnan(x)) {
cout << x << " is a NaN." << endl;
}
else {
cout << x << " is not a NaN." << endl;
}
return 0;
}
Output
isnan(sqrt(-10.0f)): 1
isnan(0.0f/0.0f): 1
isnan(0.0f/1.0f): 0
isnan(1.0f/0.0f): 0
-nan is a NaN.
1.41421 is not a NaN.
Reference: C++ isnan() function