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 似乎并没有改变内置函数的工作方式,而是提供了一种不同的功能来做类似的事情。
我无法让 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 似乎并没有改变内置函数的工作方式,而是提供了一种不同的功能来做类似的事情。