python locale - 德语(de_DE)设置的decimal_point错误

时间:2014-08-26 07:13:09

标签: python-2.7 locale decimal-point

我在这个语言环境中得到错误的小数点分隔符。 短代码示例:

import locale
print locale.getdefaultlocale()[0]
print "decimal_point:", locale.localeconv()["decimal_point"]
print (float(1)/float(2))

结果是:

de_DE
decimal_point: .
0.5

(小数点分隔符是点而不是逗号)。 Python 2.7

1 个答案:

答案 0 :(得分:1)

您需要致电locale.setlocale(locale.LC_ALL, '')。正如the docs指出:

  

根据POSIX,一个尚未调用的程序   setlocale(LC_ALL, '')   使用便携式'C'语言环境运行。致电setlocale(LC_ALL, '')   让它使用 LANG 变量定义的默认语言环境。以来   我们不希望干扰我们当前的语言环境设置   以上述方式模仿行为。