Read a rational number.
The syntax accepted by this function is the same as for rational.
Note: This function is almost ten times faster than rational, but is slightly less accurate.
The Double type supports about 16 decimal places of accuracy. For 94.2% of numbers, this function and rational give identical results, but for the remaining 5.8%, this function loses precision around the 15th decimal place. For 0.001% of numbers, this function will lose precision at the 13th or 14th decimal place.

A library that performs fast, accurate conversion between double precision floating point and text.
This library is implemented as bindings to the C++ double-conversion library written by Florian Loitsch at Google: http://code.google.com/p/double-conversion/.
The Text versions of these functions are about 30 times faster than the default show implementation for the Double type.
The ByteString versions are slower than the Text versions; roughly half the speed. (This seems to be due to the cost of allocating ByteString values via malloc.)
As a final note, be aware that the bytestring-show package is about 50% slower than simply using show.
Version 0.2.0.6