目录
Python: Format number with thousands separator to 2 decimals
以逗号作为千位分隔符格式化数字
使用格式化字符串文字来格式化数字,并以逗号作为千位分隔符。
您可以在 f 字符串中使用表达式来格式化数字,其中逗号作为千位分隔符并可选择四舍五入为 N 位小数。
my_int = 489985123 # ✅ Format integer with commas as thousands separator result = f'{my_int:,}' print(result) # 👉️ 489,985,123 # ✅ Format integer with spaces as thousands separator result = f'{my_int:,}'.replace(',', ' ') print(result) # 👉️ 489 985 123
要用逗号格式化整数作为千位分隔符,我们只需在表达式中的冒号后使用逗号。
您还可以使用该locale
模块来设置区域感知字符串格式。
import locale locale.setlocale(locale.LC_ALL, '') my_int = 489985123 result = f'{my_int:n}' print(result) # 👉️ 489,985,123 result = f'{my_int:n}'.replace(',', ' ') print(result) # 👉️ 489 985 123
locale.setlocale
方法修改
区域设置。
当
locale.LC_ALL
属性设置为空字符串时,将使用用户的首选语言环境。
如文档中所述
,该,
选项表示对千位分隔符使用逗号。
整数表示类型n
用于区域设置感知分隔符。
使用 str.format() 格式化带有逗号作为千位分隔符的数字
您还可以使用该str.format()
方法将数字格式化为以逗号作为千位分隔符。
my_int = 489985123 result = '{:,}'.format(my_int) print(result) # 👉️ 489,985,123 result = '{:,}'.format(my_int).replace(',', ' ') print(result) # 👉️ 489 985 123
str.format
方法执行字符串
格式化操作。
这是一个以区域设置感知方式执行此操作的示例。
import locale locale.setlocale(locale.LC_ALL, '') my_int = 489985123 result = '{:n}'.format(my_int) print(result) # 👉️ 489,985,123 result = '{:n}'.format(my_int).replace(',', ' ') print(result) # 👉️ 489 985 123
将带有千位分隔符的数字格式化为 2 位小数
可以使用相同的方法将千位分隔符的数字格式化为小数点后两位。
my_float = 489985.456789 # ✅ Format a number with comma as thousands separator rounded to 2 decimals result = f'{my_float:,.2f}' print(result) # 👉️ 489,985.46 # ✅ Format a number with comma as thousands separator rounded to 3 decimals result = f'{my_float:,.3f}' print(result) # 👉️ 489,985.457
我们使用
格式化的字符串文字来格式化数字,其中逗号作为千位分隔符到 N 位小数。
f
.my_str = 'is subscribed:' my_bool = True result = f'{my_str} {my_bool}' print(result) # 👉️ is subscribed: True
确保将表达式括在大括号 – 中{expression}
。
格式化字符串文字还使我们能够在表达式块中使用
格式特定的迷你语言。
my_float = 489985.456789 print(f'{my_float:,.2f}') # 👉️ 489,985.46 print(f'{my_float:,.3f}') # 👉️ 489,985.457 # --------------------------------------------- my_integer = 456789123 print(f'{my_integer:,}') # 👉️ 456,789,123
如果您将小数位数存储在变量中,请将其用大括号括在 f 字符串中。
my_float = 489985.456789 number_of_decimals = 2 result = f'{my_float:,.{number_of_decimals}f}' print(result) # 👉️ 489,985.46
使用逗号作为千位分隔符格式化整数列表
如果您需要使用逗号作为千位分隔符来格式化整数列表,请使用列表
理解。
my_list = [489985123, 123456789, 23456789, 45678901] a_list = [f'{x:,}' for x in my_list] # 👇️ ['489,985,123', '123,456,789', '23,456,789', '45,678,901'] print(a_list)
在每次迭代中,我们使用一个 f 字符串来格式化当前数字,并以逗号作为千位分隔符并返回结果。
如果您需要使用空格作为千位分隔符来格式化整数列表,则可以使用相同的方法。
a_list = [f'{x:,}'.replace(',', ' ') for x in my_list] # 👇️ ['489 985 123', '123 456 789', '23 456 789', '45 678 901'] print(a_list)
在每次迭代中,我们使用该str.replace()
方法将输出中的每个空格替换为逗号。
使用逗号作为千位分隔符格式化浮点数列表
如果您需要使用逗号作为千位分隔符来格式化浮点数列表,请使用列表理解。
list_of_floats = [489985.456789, 123456.678123, 234567.12345] result = [f'{item:,.2f}' for item in list_of_floats] print(result) # 👉️ ['489,985.46', '123,456.68', '234,567.12']
我们使用列表理解来迭代浮点数列表。
在每次迭代中,我们使用格式化字符串文字将当前浮点数格式化为以逗号作为千位分隔符的小数点后两位,并返回结果。
如果您需要使用逗号作为千位分隔符来格式化整数列表,则可以使用相同的方法。
list_of_numbers = [456789, 234567, 123456] result = [f'{item:,}' for item in list_of_numbers] print(result) # 👉️ ['456,789', '234,567', '123,456']
在每次迭代中,我们使用格式化的字符串文字来格式化当前数字,并以逗号作为千位分隔符并返回结果。
在 Python 中将浮点数格式化为货币
您还可以使用格式化字符串文字将浮点数格式化为货币。
您可以使用 f 字符串中的表达式来格式化数字,其中逗号作为千位分隔符,四舍五入到小数点后两位。
my_float = 15467.3 # ✅ format float as currency result = f'${my_float:,.2f}' print(result) # 👉️ $15,467.30 # ✅ format float as currency without comma as thousands separator result = f'${my_float:.2f}' print(result) # 👉️ $15467.30
我们使用格式化字符串文字将数字格式化为货币。
f 字符串以美元符号开头,但如果它不适合您的用例,您可以将其删除。
如果您需要将数字格式化为货币而不使用逗号作为千位分隔符,请从 f 字符串中删除逗号。
my_float = 15467.3 result = f'${my_float:.2f}' print(result) # 👉️ $15467.30
或者,您可以使用该locale.currency()
方法。
使用 locale.currency() 将浮点数格式化为货币
将浮点数格式化为货币:
- 使用
locale.setlocale()
方法将语言环境设置为en_US.UTF-8
。 - 使用该
locale.currency()
方法将浮点数格式化为货币。
import locale locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') my_float = 15467.3 result = locale.currency(my_float, grouping=True) print(result) # 👉️ $15,467.30 result = locale.currency(my_float, grouping=False) print(result) # 👉️ $15467.30
我们使用
locale.setlocale()
方法将语言环境设置为en_US.UTF-8
.
import locale locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
该setlocale()
方法采用类别和语言环境。
类别locale.LC_ALL
设置所有类别的语言环境。
locale.currency
方法
根据当前设置格式化数字。
symbol
如果关键字参数设置为 ,则返回的字符串包括货币符号True
。import locale locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') my_float = 15467.3 result = locale.currency(my_float, grouping=True, symbol=True) print(result) # 👉️ $15,467.30 result = locale.currency(my_float, grouping=False, symbol=False) print(result) # 👉️ 15467.30
您可以将grouping
关键字参数设置为False
以删除逗号千位分隔符。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: