Skip to content

Gendarme.Rules.Correctness.DoNotCompareWithNaNRule(git)

Sebastien Pouliot edited this page Mar 2, 2011 · 1 revision

DoNotCompareWithNaNRule

Assembly: Gendarme.Rules.Correctness
Version: git

Description

As defined in IEEE 754 it's impossible to compare any floating-point value, even another NaN, with NaN. Such comparison will always return false (more information on [http://en.wikipedia.org/wiki/NaN wikipedia]). The framework provides methods, Single.IsNaN and Double.IsNaN, to check for NaN values.

Examples

Bad example:

double d = ComplexCalculation ();
if (d == Double.NaN) {
    // this will never be reached, even if d is NaN
    Console.WriteLine ("No solution exists!");
}

Good example:

double d = ComplexCalculation ();
if (Double.IsNaN (d)) {
    Console.WriteLine ("No solution exists!");
}

Source code

You can browse the latest source code of this rule on github.com

Clone this wiki locally