Due to hardware limitations and the finite nature of computer arithmetic, certain numeric values cannot be represented properly. These values include infinity, negative infinity, and so on. The limits of floating point arithmetic also cause certain bit patterns to be meaningless or illegal. Such values are collectively known as NaN (