Clozure CL: Ticket #880: ~F format directive incorrectly uses exponential form when "w" and "d" are omitted.
http://trac.clozure.com/ccl/ticket/880
<p>
From Section 22.3.3.1
</p>
<blockquote>
<p>
If both w and d are omitted, then the effect is to print the value using ordinary free-format output; prin1 uses this format for any number whose magnitude is either zero or between 10<sup>-3 (inclusive) and 10</sup>7 (exclusive).
</p>
</blockquote>
<p>
free-format is defined in this section to be the same format used by prin1 for the range 10<sup>-3</sup> through 10<sup>7</sup>. This is covered in section 22.1.3.1.3:
</p>
<blockquote>
<p>
If the magnitude of the float is either zero or between 10<sup>-3</sup> (inclusive) and 10<sup>7</sup> (exclusive), it is printed as the integer part of the number, then a decimal point, followed by the fractional part of the number; there is always at least one digit on each side of the decimal point. If the sign of the number (as determined by float-sign) is negative, then a minus sign is printed before the number. If the format of the number does not match that specified by *read-default-float-format*, then the exponent marker for that format and the digit 0 are also printed. For example, the base of the natural logarithms as a short float might be printed as 2.71828S0.
</p>
</blockquote>
<p>
22.3.3.1 does go on to say that if the width would be greater than 100, exponential notation may be used. However, it follows from the specification that (for example)
</p>
<p>
(format t "~F" 1e7)
</p>
<p>
should print:
</p>
<blockquote>
<p>
10000000.0
</p>
</blockquote>
<p>
Not:
</p>
<blockquote>
<p>
1.0E+7
</p>
</blockquote>
en-usClozure CLhttp://trac.clozure.com/ccl/chrome/site/logo.png
http://trac.clozure.com/ccl/ticket/880
Trac 0.12.2