在python2.7中使用DOT作为千位分隔符

时间:2013-10-06 11:00:49

标签: python python-2.7

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

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

有没有快速转换方法?

2 个答案:

答案 0 :(得分:3)

如果您确实想要避免使用locale,那么您可以使用format(val, ',')返回的值,然后交换,.

>>> a = 1234567.89
>>> from string import maketrans
>>> trans = maketrans('.,', ',.')
>>> format(a, ',.2f').translate(trans)
'1.234.567,89'

答案 1 :(得分: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'
>>>