Issue 3140: str.format("{0:n}") poss. bug with setlocale() (original) (raw)

Python 30b1

import locale locale.setlocale(locale.LC_ALL, "en_US.UTF-8") 'en_US.UTF-8' for x in (1234,12345,123456,1234567,12345678,123456789,1234567890,12345678900): print("[{0:>20n}]".format(x))

[ 1,234] [ 12,345] [ 123,456] [ 1,234,567] [ 12,345,678] [ 123,456,789] [ 1,234,567,890] [ 12,345,678,900]

I expected that the commas would not increase the width, but maybe this was the intended behaviour?

Fixed in r64499 (trunk) and r64500 (py3k).

I now get:

import locale locale.setlocale(locale.LC_ALL, "en_US.UTF-8") 'en_US.UTF-8' for x in (123,1234,12345,123456,1234567,12345678,123456789,1234567890,12345678900): ... print("[{0:>20n}]".format(x)) ... [ 123] [ 1,234] [ 12,345] [ 123,456] [ 1,234,567] [ 12,345,678] [ 123,456,789] [ 1,234,567,890] [ 12,345,678,900]

and:

for x in (123,1234,12345,123456,1234567,12345678,123456789,1234567890,12345678900): ... print("[{0:>10n}]".format(x)) ... [ 123] [ 1,234] [ 12,345] [ 123,456] [ 1,234,567] [12,345,678] [123,456,789] [1,234,567,890] [12,345,678,900]