在数字字符串中添加逗号

89 投票
11 回答
154204 浏览
提问于 2025-04-16 12:55

我在程序中有一个数值,最后会输出一个保留两位小数的数字,像这样:

print ("Total cost is: ${:0.2f}".format(TotalAmount))

有没有办法在小数点左边每三位数字插入一个逗号呢?

比如说,10000.00 变成 10,000.00,或者 1000000.00 变成 1,000,000.00

11 个回答

18

如果你的TotalAmount是表示钱的话,可以使用locale.currency这个功能。它在Python 2.7之前的版本也可以用:

>>> locale.setlocale(locale.LC_ALL, '')
'en_US.utf8'
>>> locale.currency(123456.789, symbol=False, grouping=True)
'123,456.79'

注意:它在C这个地区设置下是不能用的,所以在调用之前你需要先设置其他地区的设置。

36

如果你使用的是Python 3或更高版本,这里有一个更简单的方法来插入逗号:

第一种方法

value = -12345672
print (format (value, ',d'))

或者另一种方法

value = -12345672
print ('{:,}'.format(value)) 
154

在Python 2.7和3.x版本中,你可以使用格式语法:来处理数字。

>>> total_amount = 10000
>>> print("{:,}".format(total_amount))
10,000
>>> print("Total cost is: ${:,.2f}".format(total_amount))
Total cost is: $10,000.00

这方面的内容在PEP 378 -- 用于千位分隔符的格式说明中有详细说明,并且在官方文档“使用逗号作为千位分隔符”中有示例。

撰写回答