FIXED: propagate errors from promoteToFloatNumber().  Before, some
arithmetic operations that imply conversion to floats of rationals
(including integers) that are outside the IEEE double float range
could give an incorrect result.