我不能让setlocale工作。 hr_HR应该将逗号识别为十进制分隔符,但它不会。我错过了什么?我在Ubuntu 14.10,python 2.7
>>> import locale
>>> float("3.2")
3.2
>>> float("3,2")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 3,2
>>> locale.setlocale(locale.LC_NUMERIC, 'hr_HR.utf8')
'hr_HR.utf8'
>>> float("3.2")
3.2
>>> float("3,2")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 3,2
>>> locale.setlocale(locale.LC_ALL, 'hr_HR.utf8')
'hr_HR.utf8'
>>> float("3.2")
3.2
>>> float("3,2")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 3,2
>>>
答案 0 :(得分:2)
您似乎想要locale.atof(string)
功能。
来自文档:
locale.atof(字符串)
按照LC_NUMERIC设置将字符串转换为浮点数。
从文档中看,它看起来并不像setlocal那样改变内置函数的工作方式,而是给出一个不同的函数来做类似的事情。