Skip to content

Gendarme.Rules.Correctness.DoNotCompareWithNaNRule(2.10)

Sebastien Pouliot edited this page Feb 9, 2011 · 3 revisions

DoNotCompareWithNaNRule

Assembly: Gendarme.Rules.Correctness
Version: 2.10

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!");
}
Clone this wiki locally