Java实现金额千分位分隔符

Python 中货币字符串的格式化:添加货币符号、千分位分隔符

在 Python 中处理财务数据时,将浮点数正确格式化为货币格式是一项常见的操作,本文探讨了货币字符串的格式化的各种方法,以满足不同的需求。

以标准化和易读的格式显示货币数值,通常包括货币符号、千分位分隔符。例如,货币数值“”,在中国应格式化为“¥1,,”,在美国应格式化为“$1,,”。

方法1: 使用 locale 模块

Python 提供了一种根据用户所在区域设置货币数值格式的方法。使用 locale 模块,会自动格式化货币数值,添加货币符号和千位分隔符。

import locale
locale.setlocale(locale.LC_ALL, '')
value = 
formatted_value = locale.currency(value, grouping=True)
print(formatted_value)
# 输出:¥1,,

默认情况下,setlocale 函数自动自动适应用户所在区域设置货币符号。如果使用其他地区货币符号,请在 setlocale 函数中添加区域参数。currency 函数中的参数 grouping=True功能是添加千分位分隔符。 ``

import locale
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
value = 
formatted_value = locale.currency(value, grouping=True)
print(formatted_value)
# 输出:$1,,

方法2:使用 babel 模块

使用 babel 模块也可以根据不同的区域来设置货币数字格式。使用 babel 模块前需要 pip 安装。

from babel.numbers import format_currency
value = 
formatted_value = format_currency(value, 'USD', locale='en_US')
print(formatted_value) 

方法3:使用 format() 格式化

Python 中的 format() 方法允许使用占位符格式化字符串。

value = 
formatted_value = "¥{:,.2f}".format(value)
print(formatted_value)

方法4:使用 f-strings 格式化

Python 引入的 f-strings,提供了一种更简单的字符串格式方法。

value = 
formatted_value = f"${value:,.2f}"
print(formatted_value)

格式化字符串中数值

如果需要处理句子中的数值,可以使用正则表达式匹配数值,找到数值并对其进行格式化。

import re
import locale
pattern = r'\d+(\.\d{1,2})?'
locale.setlocale(locale.LC_ALL, '')
value = "A total of  was consumed today."
formatted_value = re.sub(pattern, lambda x: locale.currency(float(x.group()), grouping=True), value)
print(formatted_value)
# 输出:A total of ¥1,, was consumed today.
原文链接:,转发请注明来源!