## #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);