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

Анализатор обнаружил сравнение переменной типа float или double с Float\.NaN или Double\.NaN\. В соответствии с документацией \(15\.21\.1\), если два значения 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)) {
    ....
  }
}
```