Do not compare with NaN

Metadata

ID: csharp-best-practices/comparison-nan

Language: C#

Severity: Info

Category: Best Practices

Description

Using a comparison with float.NaN or double.NaN also returns false. If you want to check the validity of a number, use float.isNaN or double.isNaN.

Non-Compliant Code Examples

class MyClass {
    public void myMethod(float v, double d)
    {
        if (float.NaN == v) {

        }

        if(double.NaN == d) {
            
        }
    }
}
class MyClass {
    public void myMethod(float v, double d)
    {
        if (v == float.NaN) {

        }

        if(d == double.NaN) {
            
        }
    }
}

Compliant Code Examples

class MyClass {
    public void myMethod(float v, double d)
    {
        if (float.isNan(f)) {

        }

        if(double.isNan(f)) {
            
        }
    }
}