我刚刚从Python格式中学习了Python中的货币, Python模块babel提供了babel.numbers.format_currency将数字格式化为货币.例如,
from babel.numbers import format_currency
s = format_currency(123456.789, 'USD', locale='en_US') # u'$123,456.79'
s = format_currency(123456.789, 'EUR', locale='fr_FR') # u'123\xa0456,79\xa0\u20ac'
Run Code Online (Sandbox Code Playgroud)
反过来,从货币到数字,如$123,456,789.00- > 123456789?babel提供babel.numbers.parse_number解析本地数字,但我没有找到类似的东西parse_currency.那么,将本地货币解析为数字的理想方法是什么?
# Way 1
import string
all=string.maketrans('','')
nodigs=all.translate(all, string.digits)
s = '$123,456.79'
n = s.translate(all, nodigs) # 12345679, lost `.`
# Way 2
import re
n = re.sub("\D", "", s) # 12345679
Run Code Online (Sandbox Code Playgroud)
它不关心小数分隔符..
.从字符串中删除除(,参见 …