#1,096 – Floating Point NaN Values
May 14, 2014 1 Comment
We’ve seen that floating point numbers can represent approximations of real number values, positive and negative zero values, and positive and negative infinity.
A floating point variable or memory location can also represent a value that is “Not a Number”, normally denoted by the keyword NaN. A NaN value is a floating point value that is a result of a calculation that leads to a value that is not a real number or a positive or negative infinity value.
NaN values are used when it’s useful to capture the fact that a calculation led to a value that is not a valid numerical result.
Below are some examples of calculations that can lead to NaN values. Note that we can use float.IsNaN to check for this value.
float zeroOverZero = 0.0f / 0.0f; float zeroTimesInfinity = 0.0f * float.PositiveInfinity; float InfinityCalc = float.PositiveInfinity + float.NegativeInfinity; double rootNegOne = Math.Sqrt(-1.0);