python setlocale 不起作用

python setlocale does not work

我无法让 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
>>> 

您似乎需要 locale.atof(string) 函数。 来自文档:

locale.atof(string)

Converts a string to a floating point number, following the LC_NUMERIC settings.

从文档来看,setlocal 似乎并没有改变内置函数的工作方式,而是提供了一种不同的功能来做类似的事情。