Preciser version of toRealFloat. If the base10Exponent
of the given Scientific is too big or too small to be
represented in the target type, Infinity or 0 will be returned as
Left.
Safely convert a Scientific number into a RealFloat
(like a Double or a Float).
Note that this function uses realToFrac
(fromRational . toRational) internally but it
guards against computing huge Integer magnitudes (10^e) that
could fill up all space and crash your program. If the
base10Exponent of the given Scientific is too big or too
small to be represented in the target type, Infinity or 0 will be
returned respectively. Use toBoundedRealFloat which explicitly
handles this case by returning Left.
Always prefer toRealFloat over realToFrac when
converting from scientific numbers coming from an untrusted source.