This is an old revision of the document!
In computing, NaN, which stands for Not a Number, is a value or symbol that is usually produced as the result of an operation on invalid input operands. For example, most floating-point units are unable to explicitly calculate the square root of negative numbers, and will instead indicate that the operation was invalid and return a NaN result.
An invalid operation is not the same as an arithmetic overflow (which returns a positive or negative infinity). Arithmetic operations involving NaN always produce NaN, allowing the value to propagate through a calculation so that errors can be detected at the end without extensive testing during intermediate stages.
A NaN does not compare equal to any number or NaN. You can therefore test whether a variable has a NaN value by comparing it to itself, thus if x == x
gives false (0) then x is a NaN code.
There are three kinds of operation which return NaN:
1+NaN
0/0, ∞/∞, ∞/-∞, -∞/∞, -∞/-∞
0*∞, 0*(-∞)
∞+(-∞), (-∞)+∞
and equivalent subtractions.In MagicPlot NaN also is used to represent empty cells in tables.
Statistical functions ignores NaN values in tables.
You can use a predefined constants NaN
, nan
or NAN
in expressions to specify NaN value.
Expression | Result |
---|---|
0^0 | 1 |
0/0 | NaN |
sqrt(-1) | NaN |
1/0 | Infinity |
-1/0 | -Infinity |