number->string takes a number and a
radix and returns as a string an external representation
of the given number in the given radix such that
(let ((number number) (radix radix)) (eqv? number (string->number (number->string number radix) radix)))
is true. It is an error if no possible result makes this expression true.
If present, radix must be an exact integer in the range 2 to 36, inclusive. If omitted, radix defaults to 10.
If z is inexact, the radix is 10, and the above expression can be satisfied by a result that contains a decimal point, then the result contains a decimal point and is expressed using the minimum number of digits (exclusive of exponent and trailing zeroes) needed to make the above expression; otherwise the format of the result is unspecified.
The result returned by
number->string never contains an
explicit radix prefix.
Note: The error case can occur only when z is not a complex number or is a complex number with a non-rational real or imaginary part.
Rationale: If z is an inexact number and the radix is 10, then the above expression is normally satisfied by a result containing a decimal point. The unspecified case allows for infinities, NaNs, and unusual representations.
Returns a number of the maximally precise representation expressed by the given string. It is an error if radix is not an exact integer in the range 2 to 26, inclusive.
If supplied, radix is a default radix that will be overridden
if an explicit radix prefix is present in the string (e.g.
"#o177"). If radix is not supplied, then the default radix
is 10. If string is not a syntactically valid notation for a
number, or would result in a number that the implementation cannot represent,
An error is never signaled due to the content of string.
(string->number "100") ⇒ 100 (string->number "100" 16) ⇒ 256 (string->number "1e2") ⇒ 100.0 (string->number "#x100" 10) ⇒ 256