Add 'decimal-mark' thousands separators to a number Add 'decimal-mark' thousands separators to a number python python

Add 'decimal-mark' thousands separators to a number


If you want to add a thousands separator, you can write:

>>> '{0:,}'.format(1000000)'1,000,000'

But it only works in Python 2.7 and above.

See format string syntax.

In older versions, you can use locale.format():

>>> import locale>>> locale.setlocale(locale.LC_ALL, '')'en_AU.utf8'>>> locale.format('%d', 1000000, 1)'1,000,000'

the added benefit of using locale.format() is that it will use your locale's thousands separator, e.g.

>>> import locale>>> locale.setlocale(locale.LC_ALL, 'de_DE.utf-8')'de_DE.utf-8'>>> locale.format('%d', 1000000, 1)'1.000.000'


I didn't really understand it; but here is what I understand:

You want to convert 1123000 to 1,123,000. You can do that by using format:

http://docs.python.org/release/3.1.3/whatsnew/3.1.html#pep-378-format-specifier-for-thousands-separator

Example:

>>> format(1123000,',d')'1,123,000'


Just extending the answer a bit here :)

I needed to both have a thousandth separator and limit the precision of a floating point number.

This can be achieved by using the following format string:

> my_float = 123456789.123456789> "{:0,.2f}".format(my_float)'123,456,789.12'

This describes the format()-specifier's mini-language:

[[fill]align][sign][#][0][width][,][.precision][type]

Source: https://www.python.org/dev/peps/pep-0378/#current-version-of-the-mini-language