Функция isnan
Функция isnan проверяет, является ли переданное ей значение
специальным числом NaN (Not a Number - "не число").
В единственный параметр мы передаем число с плавающей точкой,
которое нужно проверить. Функция возвращает true,
если значение является NaN, и false в противном случае.
Значение NaN обычно возникает при некорректных математических
операциях, например, при делении нуля на ноль или извлечении
корня из отрицательного числа.
Синтаксис
#include <cmath>
bool isnan(double value);
Пример
Давайте проверим обычное число на то, является ли оно NaN:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double num = 5.0;
cout << isnan(num) << endl;
return 0;
}
Результат выполнения кода:
0
Пример
Давайте получим значение NaN путем извлечения корня
из отрицательного числа и проверим его:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double num = sqrt(-1.0);
cout << isnan(num) << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте создадим значение NaN с помощью функции nan
и проверим его:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double num = nan("");
cout << isnan(num) << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте проверим бесконечность - функция isnan должна
вернуть false, так как бесконечность не является NaN:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double num = 1.0 / 0.0;
cout << isnan(num) << endl;
return 0;
}
Результат выполнения кода:
0