Serge Orlov wrote:

Timothy Smith wrote:


Serge Orlov wrote:



Timothy Smith wrote:




thats ok, but how do i get it to group thousands with a , ?
and thats would mean i'd have to run everything through a formatter
before i displayed it :/ it'd be nicer if i could just select a
proper locale




I think you're misusing locale. There is no guarantee that any
specific locale will have properties (like grouping) set to a known
value. Are you trying to format money? Then you need a special class
so that you can say:

d = Dollars(1000000.01)
print "You have %s in your account" % d

and get

You have $1,000,000.01 in your account.

Serge.





thats exactly what i'm trying to do, only having to do that for all
my outputs is more work then i'd like :/



SUS has added numeric grouping

      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.

but they hasn't added monetary grouping. I don't think you'll
get monetary grouping anytime soon. Besides as far as I understood
your question, you *always* want grouping, right?

Actually I don't think a cryptic flag is better than an explicit
formatter. What do you think is more clear for a maintainer of your
code?

print "%'.2f" % amount

or

print "%s" % dollars(amount)







why is this a misuse of locale? it's exactly what locale is meant for
isn't it?



I just reacted to your words "select a proper locale" and "how do i get it to group thousands with a ,". It's just not a good idea to select a locale and expect the grouping character to be "," or expect grouping, see nl_NL locale example above.

 Serge.



i'm pretty sure english au uses thousands grouping with ,
i've managers to make this work, however it just isn't cross platform at all.


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to