﻿# V3076\. Comparison with 'double\.NaN' is meaningless\. Use 'double\.IsNaN\(\)' method instead\.

Анализатор обнаружил сравнение переменной типа float или double с float\.NaN или double\.NaN\. В соответствии с документацией, если два значения double\.NaN сравниваются с помощью оператора \=\= , то результатом будет false\. Таким образом какое бы значение типа double ни сравнивали с double\.NaN, в результате всегда будет false\.

Рассмотрим пример:

```cpp
void Func(double d) {
  if (d == double.NaN) {
    ....
  }
}
```

Проверка на NaN с помощью операторов \=\= и \!\= некорректна\. Вместо этого следует использовать методы float\.IsNaN\(\) или double\.IsNaN\(\)\. Исправленный вариант:

```cpp
void Func(double d) {
  if (double.IsNaN(d)) {
    ....
  }
}
```