在 Python 中用逗号格式化数字作为千位分隔符

目录

Python: Format number with thousands separator to 2 decimals

  1. 使用逗号格式化数字作为千位分隔符
  2. 将带有千位分隔符的数字格式化为 2 位小数
  3. 使用逗号作为千位分隔符格式化整数列表
  4. 用逗号格式化浮点数列表作为千位分隔符
  5. 在 Python 中将浮点数格式化为货币

以逗号作为千位分隔符格式化数字

使用格式化字符串文字来格式化数字,并以逗号作为千位分隔符。

您可以在 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-strings) 让我们通过在字符串前加上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() 将浮点数格式化为货币

将浮点数格式化为货币:

  1. 使用locale.setlocale()方法将语言环境设置为en_US.UTF-8
  2. 使用该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以删除逗号千位分隔符。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: