如何将“$1,234.56”读作 1234.56
How to read '$1,234.56' as 1234.56
我已经查看了 'currency' 个主题,但它们都是相反的。我正在阅读以 $1,234.56 &c 形式出现的财务数据,所有内容均为字符串。我拆分了输入行,并希望将值项转换为 add/subtract 的浮点数(我最担心舍入误差)。自然地,float() 会抛出一个错误。
我可以写一个函数来调用 'amount = float(num(value_string)),但是如果在 32,000 个 Python 模块之一中有一个 "dollar_string_to_float()" 函数就更难了.
查看正则表达式模块。您可以编译一个匹配您的 dollars/cents 格式的模式并从中提取浮点数。
我认为这个问题与this question略有不同,但我不确定。
无论如何,上述问题的代码只需要将一个函数从 Decimal
更改为 Float
并删除 Decimal 导入。
按照您的要求,代码在 dollar_string_to_float
函数中:
>>> from re import sub
>>> def dollar_string_to_float(s):
return float(sub(r'[^\d.]', '', money))
>>> money = ',234.56'
>>> print dollar_string_to_float(money)
1234.56
我已经查看了 'currency' 个主题,但它们都是相反的。我正在阅读以 $1,234.56 &c 形式出现的财务数据,所有内容均为字符串。我拆分了输入行,并希望将值项转换为 add/subtract 的浮点数(我最担心舍入误差)。自然地,float() 会抛出一个错误。
我可以写一个函数来调用 'amount = float(num(value_string)),但是如果在 32,000 个 Python 模块之一中有一个 "dollar_string_to_float()" 函数就更难了.
查看正则表达式模块。您可以编译一个匹配您的 dollars/cents 格式的模式并从中提取浮点数。
我认为这个问题与this question略有不同,但我不确定。
无论如何,上述问题的代码只需要将一个函数从 Decimal
更改为 Float
并删除 Decimal 导入。
按照您的要求,代码在 dollar_string_to_float
函数中:
>>> from re import sub
>>> def dollar_string_to_float(s):
return float(sub(r'[^\d.]', '', money))
>>> money = ',234.56'
>>> print dollar_string_to_float(money)
1234.56