-
Notifications
You must be signed in to change notification settings - Fork 4
Gendarme.Rules.Correctness.DoNotCompareWithNaNRule(git)
Sebastien Pouliot edited this page Mar 2, 2011
·
1 revision
Assembly: Gendarme.Rules.Correctness
Version: git
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.
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!");
}
You can browse the latest source code of this rule on github.com
Note that this page was autogenerated (3/17/2011 1:55:44 PM) based on the xmldoc
comments inside the rules source code and cannot be edited from this wiki.
Please report any documentation errors, typos or suggestions to the
Gendarme Mailing List. Thanks!