Next: , Previous: Comparison, Up: Numbers


6.6.2.9 Converting Numbers To and From Strings

The following procedures read and write numbers according to their external representation as defined by R5RS (see R5RS Lexical Structure). See the (ice-9 i18n) module, for locale-dependent number parsing.

— Scheme Procedure: number->string n [radix]
— C Function: scm_number_to_string (n, radix)

Return a string holding the external representation of the number n in the given radix. If n is inexact, a radix of 10 will be used.

— Scheme Procedure: string->number string [radix]
— C Function: scm_string_to_number (string, radix)

Return a number of the maximally precise representation expressed by the given string. radix must be an exact integer, either 2, 8, 10, or 16. If supplied, radix is a default radix that may be overridden by an explicit radix prefix in 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, then string->number returns #f.

— C Function: SCM scm_c_locale_stringn_to_number (const char *string, size_t len, unsigned radix)

As per string->number above, but taking a C string, as pointer and length. The string characters should be in the current locale encoding (locale in the name refers only to that, there's no locale-dependent parsing).