The Double value is rounded to the nearest
Single value. If the Double value is too small to
represent as a Single, the result becomes positive zero or negative zero.
If the Double value is too large to represent as a Single, the result
becomes positive infinity or negative infinity. If the Double value is
NaN, the result is also NaN.