The *rational-to-string* package essentially allows arbitrary
precision floating point in Clojure or Common Lisp by converting
your input floating point to rational numbers using
*(string-to-rational)*. All arithmetic can be performed
using Clojure's or Common Lisp's built-in support for arbitrary
precision rational numbers. When finished, the results can be
output to as many decimal places as you like using
*(rational-to-string)*. Scientific notation can be used for
both input and output.

Another exported function that is of general use is
*(parse-decimal-string)* which knows how to parse strings of
the following form:

"[+|-]<whole_part>.<fract_part>[e|E[+|-]<exp_part>]"

Clojure version of rational-to-string

Common Lisp version of rational-to-string