Round to double precision. Note that since doubles have a much smaller
exponent range than ExactFloats, very small values may be rounded to
(positive or negative) zero, and very large values may be rounded to
infinity.
It is very important to make this a named method rather than an implicit
conversion, because otherwise there would be a silent loss of precision
whenever some desired operator or function happens not to be implemented.
For example, if fabs() were not implemented and "x" and "y" were
ExactFloats, then x = fabs(y) would silently convert "y" to a "double",
take its absolute value, and convert it back to an ExactFloat.
Round to double precision. Note that since doubles have a much smaller exponent range than ExactFloats, very small values may be rounded to (positive or negative) zero, and very large values may be rounded to infinity.
It is very important to make this a named method rather than an implicit conversion, because otherwise there would be a silent loss of precision whenever some desired operator or function happens not to be implemented. For example, if fabs() were not implemented and "x" and "y" were ExactFloats, then x = fabs(y) would silently convert "y" to a "double", take its absolute value, and convert it back to an ExactFloat.