
22 Printer 22.1 The Lisp Printer 22.1.3 Default PrintObject Methods 22.1.3.1 Printing Numbers
22.1.3.1.3 Printing Floats
If the magnitude of the float is either zero or between 10^{3} (inclusive)
and 10^{7} (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 floatsign)
is negative, then a minus sign is printed before the number.
If the format of the number
does not match that specified by
*readdefaultfloatformat*, 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.
For nonzero magnitudes outside of the range 10^{3} to 10^{7},
a float is printed in computerized scientific notation.
The representation of the number is scaled to be between
1 (inclusive) and 10 (exclusive) and then printed, with one digit
before the decimal point and at least one digit after the decimal point.
Next the exponent marker for the format is printed,
except that
if the format of the number matches that specified by
*readdefaultfloatformat*, then the exponent marker E
is used.
Finally, the power of ten by which the fraction must be multiplied
to equal the original number is printed as a decimal integer.
For example, Avogadro's number as a short float
is printed as 6.02S23.
For related information about the syntax of a float,
see Section 2.3.2.2 Syntax of a Float.
