我正在使用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?
答案 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