首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中将货币字符串转换为浮点数?

如何在Python中将货币字符串转换为浮点数?
EN

Stack Overflow用户
提问于 2011-12-08 04:16:54
回答 7查看 64.2K关注 0票数 52

我有一些表示特定货币格式的数字的字符串,例如:

代码语言:javascript
复制
money="$6,150,593.22"

我想把这个字符串转换成数字

代码语言:javascript
复制
6150593.22

实现这一目标的最佳方法是什么?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-12-08 04:28:22

试试这个:

代码语言:javascript
复制
from re import sub
from decimal import Decimal

money = '$6,150,593.22'
value = Decimal(sub(r'[^\d.]', '', money))

这有一些好处,因为它使用Decimal而不是float (更适合表示货币),而且它还避免了任何区域设置问题,因为它不会硬编码特定的货币符号。

票数 74
EN

Stack Overflow用户

发布于 2011-12-08 04:24:10

如果您的语言环境设置正确,您可以使用locale.atof,但您仍然需要手动删除'$‘:

代码语言:javascript
复制
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF8')
'en_US.UTF8'
>>> money = "$6,150,593.22"
>>> locale.atof(money.strip("$"))
6150593.2199999997
票数 17
EN

Stack Overflow用户

发布于 2017-09-26 01:47:10

对于不对货币位置或符号进行硬编码的解决方案:

代码语言:javascript
复制
raw_price = "17,30 €"
import locale
locale.setlocale(locale.LC_ALL, 'fr_FR.UTF8')
conv = locale.localeconv()
raw_numbers = raw_price.strip(conv['currency_symbol'])
amount = locale.atof(raw_numbers)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8421922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档