FLONUM-TO-DIGITS handles non-negative input properly
authorDavid Vázquez <davazp@es.gnu.org>
Mon, 28 Jun 2010 15:28:08 +0000 (17:28 +0200)
committerNikodemus Siivola <nikodemus@random-state.net>
Sat, 11 Jun 2011 18:43:52 +0000 (21:43 +0300)
commit58187b3f2ab87bce54657c9c94ac2b3090103ba1
treed7dbab2b10c85e407f629fb3e1305fc4992416ab
parent25692c34027ea51a6b51057bf803f19fe3a575d7
FLONUM-TO-DIGITS handles non-negative input properly

 lp#308961, part 1.

 SBCL has an extended version of the Burger & Dybwig fp printer, which
 supports rounding.

 It did not however support zero -- but in eg.

   (format nil "~,1F" 0.001)

 0.001 is rounded to zero, which leads FLONUM-TO-DIGITS giving us one zero too
 many. Ie. it should be

    => "0.0"

 but prior to this we got "0.00" instead.

 This patch removes the special casing for 0, and instead tests that the lower
 limit of the interval (- r m-) is positive in order not to generate extra
 zeros.
src/code/print.lisp