如何打印带有数千个分隔符的浮点数?

2022-01-15 00:00:00 python format decimal

问题描述

如何格式化十进制数,以便 32757121.33 显示为 32.757.121,33?

How can I format a decimal number so that 32757121.33 will display as 32.757.121,33?


解决方案

使用 locale.format():

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'German')
'German_Germany.1252'
>>> print(locale.format('%.2f', 32757121.33, True))
32.757.121,33

您可以将语言环境更改限制为显示数值(使用 locale.format()locale.str() 等时)并保留其他语言环境设置不受影响:

You can restrict the locale changes to the display of numeric values (when using locale.format(), locale.str() etc.) and leave other locale settings unaffected:

>>> locale.setlocale(locale.LC_NUMERIC, 'English')
'English_United States.1252'
>>> print(locale.format('%.2f', 32757121.33, True))
32,757,121.33
>>> locale.setlocale(locale.LC_NUMERIC, 'German')
'German_Germany.1252'
>>> print(locale.format('%.2f', 32757121.33, True))
32.757.121,33

相关文章