scale*10 is computed exactly until scale exceeds 2^54/10; in
contrast, scale*0.1 may not be computed exactly, and fl(0.1) is not
even 0.1.
WARNING: This change is not complete -- it does nothing to prevent
overflow with very long strings of digits after the decimal point.
a wrong result to things like (numeric (- (* 36 36 36) 1) 36).
Fixed a bug in numeric that caused comma-sep and dec-sep to get
initialized wrongly.
Fixed maybe-trim-zeros to leave behind at least a ".0" on
inexact numbers that otherwise would have been output without
the decimal point. This is for consistency with number->string
which is used when the radix is 10.
In gen-general, fixed a bug in the digit-generating loop for the
whole part of the number. Previously, an integer that should
have looked like 5003 would be emitted as 5300.
Switched the order of application of maybe-round and
maybe-trim-zeros so that a number that should round to
.0000000000000001 doesn't get emitted as 0.1.
In gen-positive-real, fixed the ratio case to not call
number->string with a radix that might not be in {2,8,10,16}.
Also in gen-positive-real, fixed the call to number->string to
include the radix which was missing previously.
Fixed wrap-sign to correctly handle the case of -0.0.
In numeric/si, always emit the supplied separator even if the
number is too small for an SI-suffix to be emitted. The
examples in the SRFI document depend on this.
determined the string will not exceed the column width. But
output is the caller environment's output state variable. A
better choice is output-default.
In two places (length+ form) is replaced with (or (length+ form) +inf.0)
so that arithmetic can be performed on the result.
To support cyclic structures in pretty-simply (wrapped with
trimmed/lazy), the call-with-output form in pp-with-indent needs to be
wrapped with an appropriate trimmed/lazy.
In pp-pair, call (pp (car ls)) instead of (pretty (car ls)).
In pretty-simply, don't use call-with-output, that prevents
(trimmed/lazy n (pretty-simply ...)) from working at all on cyclic
input.
on the left rather than the right as specified.
Fixed trivial bug in padded/left where a string longer than the provided
width would result in a call to make-string with a negative length.
Fixed trivial bug in trimmed/lazy around an fn-binding for the output
state variable.