number->string should use either no exponent or an e-exponent
Alan Watson 05 Jul 2006 18:26 UTC
I think number->string without an explicit precision (and hence write)
should be defined to use either no exponent or an e-exponent when its
argument satisfies flonum?
Scheme A considers exponentless, d-exponent, l-exponent, e-exponent
literals as flonums and writes flonums with a d-exponent. Scheme B
considers only exponentless, l-exponent, and e-exponent literals as
flonums and writes flonums with an e-exponent. Both Scheme A and Scheme
B satisfy write-read invariance for flonums as required by SRFI 77, but
when Scheme B reads a flonum written by Scheme A, the result is not a
flonum.
Now, we cannot force inexact numbers to have the same value from
implementation to implementation, but I think a flonum should stay a
flonum, regardless of whatever happens to its value. If not, one has to
filter all flonum input through real->flonum before using the
flonum-specific procedures. Ugh.
Regards,
Alan