我有这样的例子:
10.99美元
LIR10.99
$ 10.99
$ 10.99
因此输入数据可以是任何符号浮动'或者'符号浮动'。
我做了这样的事情:
float((str(param[2]).translate(None, '$USDLIR')))
但它可以是任何世界货币,因此它必须是通用转换器。
答案 0 :(得分:5)
您可以删除除数字以外的所有内容(包括逗号或小数点):
import re
trim = re.compile(r'[^\d.,]+')
mystring = 'USD 10.99'
result = trim.sub('', mystring)
print(result)
# '10.99'
答案 1 :(得分:4)
从字符串中删除任何不是数字或小数点的内容:
import re
import locale
decimal_point_char = locale.localeconv()['decimal_point']
clean = re.sub(r'[^0-9'+decimal_point_char+r']+', '', str(param[2]))
value = float(clean)
这也将处理分组($ 1,000.00
)和不同的区域设置。
答案 2 :(得分:1)
我刚刚找到了解决方案:
def price_convert(_price):
return float(sub(r'[^0-9.]', '', _price))