<div dir="ltr">Hello,<div><br></div><div style>comparing output from different implementations I've found the following (minor) bug:</div><div style> </div><div><div>> (format t "~,2f" 0.999)</div><div style>
1.0 ;; should be 1.00</div></div><div style><br></div><div style>I think there is a problem here as well:</div><div style><br></div><div style><div>> (format t "~5f" 0.00000001)</div><div style>.0000 ;; should print "  0.0"<br>
</div></div><div style><br></div><div style>Only SBCL gives the output I would expect, most implementations print ".0000" as ABCL does. From the HyperSpec <a href="http://22.3.3.1">22.3.3.1</a>: "If the parameter d is omitted, then there is no constraint on the number of digits to appear after the decimal point. A value is chosen for d in such a way that as many digits as possible may be printed subject to the width constraint imposed by the parameter w and the constraint that ___no trailing zero digits may appear in the fraction, except that if the fraction to be printed is zero, then a single zero digit should appear after the decimal point___ if permitted by the width constraint." This problem appears only when the value is close to zero, otherwise the output is fine:</div>
<div style><br></div><div style>> (format t "~5f" 1.00000001)<br></div><div style><div><div style>  1.0 ;; OK<br></div></div><div><br></div><div style>I guess those zero digits are not considered trailing because there is no non-zero digit before but I think the specification still requires the fraction to be printed with a single zero digit after the decimal point.</div>
</div><div style><br></div><div style>Regards,</div><div style><br></div><div style>Carlos Ungil</div><div style><br></div><div style><br></div><div style><br></div></div>