使用逗号将此数字字符串转换为在python中浮动的更好方法?

时间:2017-09-16 03:51:38

标签: python python-3.x locale setlocale

我正在使用python v3。我有这个字符串1,027.86。我想将其转换为float 1027.86

我在谷歌搜索时找到了解决方案。

import locale
locale.setlocale(locale.LC_NUMERIC, "nl")
price = '1,027.86'
price = locale.atof(price)*1000

我在文档中搜索locale.setlocale(locale.LC_NUMERIC, "nl")的含义,但无法找到答案。 http://dc.dyu.edu.tw/python/350/library/locale.html

是否有一个更好的参数放在setlocal()里面,直接返回结果而不需要乘以1000?

2 个答案:

答案 0 :(得分:1)

您可以使用简单的字符串替换将其转换为可以正确解析的price = float('1,027.86'.replace(',',''))浮点数。

答案 1 :(得分:1)

nl指定setlocale()告诉它默认为荷兰的格式。如果您使用uk之类的内容,则应正确转换,因为数字格式的格式为xxx,xxx,xxx.xxx

import locale

locale.setlocale(locale.LC_NUMERIC, "uk")
price = '1,027.86'
print(locale.atof(price))

这会显示:

1027.86