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:
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