Сравнение NaN в C++
Давайте теперь будем сравнивать NaN.
Такое значение получают, например, из 0.0/0.0.
Оно не равно само себе, поэтому сравнение
с == дает ложь.
Давайте сравним это значение с собой:
double num = 0.0 / 0.0;
if (num == num) {
std::cout << "Y" << "\n";
} else {
std::cout << "N" << "\n"; // сработает это
}
Неравенство с собой, наоборот, истинно:
double num = 0.0 / 0.0;
if (num != num) {
std::cout << "Y" << "\n"; // сработает это
} else {
std::cout << "N" << "\n";
}
Дано число:
double num = 0.0 / 0.0;
Если число равно само себе, выведите "Y", иначе "N".