In mathematics, real numbers are linearly ordered; for any two numbers a and b, exactly one of the following is true:
a < b
a = b
a > b
With floating point values, there is a fourth possibility; a and b may be unordered. This happens if one or both values are Not-a-Number values.
All comparison operators, including number=, return f in the unordered case (and in particular, this means that a NaN is not equal to itself).
The ordered comparison operators set floating point exception flags if the result of the comparison is unordered. The standard comparison operators (<, <=, >, >=) perform ordered comparisons.
The number= operation performs an unordered comparison. The following set of operators also perform unordered comparisons: