х - переменная float или double, значение которой вы хотите проверить на NaN.
NaN расшифровывается как Not a Number - не число.
Появляется когда результат операции с числами не определён, например
Код:
x=sqrt(-1);
x=asin(2);
x=log(-1)
x=0.0/0.0;
Обратите внимание, что деление 0/0 должно быть с плавающей точкой. По историческим причинам целочисленное деление вызывает исключение.
В дальнейшем любая операция с NaN даёт NaN, любое сравнение с NaN даёт false, даже NaN == NaN. Так его и можно отличить от других значений.
В вашем случае NaN может получиться при делении 0.0/0.0, или сложении -бесконечности с +бесконечность, или при вычитании +бесконечость - +бесконечность, и тому подобное.