Do not compare with NaN

This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project, feel free to reach out to us!

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)) {
            
        }
    }
}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis