[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

string->number



 | From: Thomas Bushnell BSG <tb@xxxxxxxxxx>
 | Date: Thu, 02 Jun 2005 09:16:37 -0700
 | 
 | Aubrey Jaffer <agj@xxxxxxxxxxxx> writes:
 | 
 | > To first order:
 | >
 | >   (define (precision-of x) (string-length (number->string x)))
 | >
 | > R5RS requires all numbers to have external representations; and it
 | > specifies the allowed formats.
 | 
 | What?  number->string does not specify the allowed formats for
 | exact numbers, only for inexact (and only for some inexact numbers

Yes, I should have written "inexact numbers".

 | at that).  This isn't an accident; it was done specifically for
 | just this reason, to allow for different representations.  See the
 | Rationale:
 | 
 | "The unspecified case allows for infinities, NaNs, and non-flonum
 | representations."
 | 
 | So if X is an exact version of sqrt 2, it's perfectly fine for
 | number->string to return anything that string->number can
 | understand.

Can number->string return a string which can't be READ as a number?

I had thought that 6.2.4 "Syntax of numerical constants" and 7.1.1
"Lexical structure" applied to the results of NUMBER->STRING.  If they
are independent, a note about that should be added to the report.