python setlocale不起作用

时间:2015-03-30 17:55:48

标签: python setlocale

我不能让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
>>> 

1 个答案:

答案 0 :(得分:2)

您似乎想要locale.atof(string)功能。 来自文档:

  

locale.atof(字符串)

     

按照LC_NUMERIC设置将字符串转换为浮点数。

从文档中看,它看起来并不像setlocal那样改变内置函数的工作方式,而是给出一个不同的函数来做类似的事情。