CA2242: Test for NaN correctly
|
TypeName |
TestForNaNCorrectly |
|
CheckId |
CA2242 |
|
Category |
Microsoft.Usage |
|
Breaking Change |
Non Breaking |
Double.NaN , which represents not-a-number, results when an arithmetic operation is undefined. Any expression that tests equality between a value and Double.NaN always returns false. Any expression that tests inequality between a value and Double.NaN always returns true.
To fix a violation of this rule and accurately determine whether a value represents Double.NaN, use SingleIsNan(Single) or DoubleIsNan(Double) to test the value.
The following example shows two expressions that incorrectly test a value against Double.NaN and an expression that correctly uses Double.IsNaN to test the value.