我尝试使用包babel
和德语区域设置以科学数字格式(带指数)打印数字:
>>> from babel.numbers import format_scientific
>>> x = 123456.789
>>> format_scientific(x, format="0.000E0", locale="de_DE")
'1.235E5'
我原本期望输出'1,235E5'
(请注意逗号而不是小数点作为小数分隔符)。也许format_scientific
不应该被直接调用,我对format_decimal
有更多好运吗?都能跟得上:
>>> from babel.numbers import format_decimal
>>> format_decimal(x, format="0.000E0", locale="de_DE")
'1.235E5'
我已经使用Python 3.6和Babel 2.3.4对其进行了测试。这不是Babel的最新版本,但是他们的更新日志并没有表明他们在处理科学格式时修复了一个大的,明显的错误,也没有在他们的bugtracker上找到任何东西。由于这种错误似乎不会被忽视,我显然做错了什么或在一些错误的假设下运作。