[Python-Dev] Re: Be Honest about LC_NUMERIC [REPOST]
Jeff Epler
jepler at unpythonic.net
Tue Sep 2 11:44:03 EDT 2003
On Tue, Sep 02, 2003 at 11:29:55AM -0400, Tim Peters wrote:
> OTOH, *are* there locales that insert thousands_sep? I don't know.
[...]
> There's no support there for the notion that "the formatted (etc)" functions
> *can* be affected by thousands_sep, just that fiddling locale can affect
> decimal-point and the (passive) values returned by localeconv().
The Linux/glibc documentation, which cites SUSv2, seems to imply that no
locale inserts the thousands separator in formatting operations, except
when the ' flag character is included:
For some numeric conversions a radix character ('decimal point') or
thousands' grouping character is used. The actual character used
depends on the LC_NUMERIC part of the locale. The POSIX locale uses '.'
as radix character, and does not have a grouping character. Thus,
printf("%'.2f", 1234567.89);
results in '1234567.89' in the POSIX locale, in '1234567,89' in the
nl_NL locale, and in '1.234.567,89' in the da_DK locale.
[...]
The five flag characters above are defined in the C standard. The
SUSv2 specifies one further flag character.
' For decimal conversion (i, d, u, f, F, g, G) the output is to be
grouped with thousands' grouping characters if the locale infor-
mation indicates any. Note that many versions of gcc cannot
parse this option and will issue a warning. SUSv2 does not
include %'F.
Jeff
More information about the Python-Dev
mailing list