Python 带浮点数的格式字符串中的千位分隔符

Python 带浮点数的格式字符串中的千位分隔符,python,formatting,python-2.6,Python,Formatting,Python 2.6,我想在浮子上有上千个分离器。我正在做的是: >>> import locale >>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') 'en_US.UTF-8' >>> print '{0:n}'.format(123456.0) 123,456 当整数部分有7个或更多数字时,它不起作用: >>> print '{0:n}'.format(1234567.0) 1.23457

我想在浮子上有上千个分离器。我正在做的是:

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
'en_US.UTF-8'
>>> print '{0:n}'.format(123456.0)
123,456
当整数部分有7个或更多数字时,它不起作用:

>>> print '{0:n}'.format(1234567.0)
1.23457e+06
我发现的解决方法是在格式化之前将浮点值转换为整数:

>>> print '{0:n}'.format(int(1234567.0))
1,234,567

是否有一个格式字符串可以处理所有浮点数,而无需先将其转换为整数?

使用locale modules format函数:

>>> locale.setlocale(locale.LC_ALL, 'English')
>>> 'English_United States.1252'

>>> print locale.format('%.2f', 123456789.0, True)
>>> 123,456,789.00

区域设置有点难看,因为它不是线程安全的,并且非常依赖于区域设置的实际功能。这可能是您想要的,但这里是Python的内部版本(从2.7开始):


有关规格,请参阅。

我更喜欢这个答案,而不是公认的答案。谢谢
>>> '{0:,.2f}'.format(123466666)
'123,466,666.00'