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:
Clojure version of rational-to-string
Common Lisp version of rational-to-string