0

如何在不使用语言环境的情况下在 python 2.7 中将十进制数 123456.789 格式化为 123.456,78?

千位分隔符应该是 DOT 而不是 COMMA,小数分隔符应该是 COMMA 而不是 DOT。

有什么快速转换的方法吗?

4

2 回答 2

3

如果您真的非常想避免,locale那么您可以使用从返回的值format(val, ','),然后交换,and .

>>> a = 1234567.89
>>> from string import maketrans
>>> trans = maketrans('.,', ',.')
>>> format(a, ',.2f').translate(trans)
'1.234.567,89'
于 2013-10-06T12:18:14.003 回答
1

一种方法是更改​​您的locale

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'deu_DEU')
'German_Germany.1252'
>>> "{0:n}".format(12345.67)
'12.345,7'
>>> locale.setlocale(locale.LC_ALL, '')
'English_United Kingdom.1252'
>>> "{0:n}".format(12345.67)
'12,345.7'
>>>
于 2013-10-06T11:14:43.380 回答