Procedure: `number->string`

* z* [

`radix`

The procedure

`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,

must be an exact integer in the range 2 to 36, inclusive. If omitted,`radix`

defaults to 10.`radix`

If

is inexact, the`z`

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.`radix`

The result returned by

`number->string`

never contains an explicit radix prefix.

Note:The error case can occur only whenis not a complex number or is a complex number with a non-rational real or imaginary part.`z`

Rationale:Ifis an inexact number and the`z`

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.`radix`

Procedure: `string->number`

* string* [

`radix`

Returns a number of the maximally precise representation expressed by the given

. It is an error if`string`

is not an exact integer in the range 2 to 26, inclusive.`radix`

If supplied,

is a default radix that will be overridden if an explicit radix prefix is present in the string (e.g.`radix`

`"#o177"`

). Ifis not supplied, then the default`radix`

is 10. If`radix`

is not a syntactically valid notation for a number, or would result in a number that the implementation cannot represent, then`string`

`string->number`

returns`#f`

. 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