在python中使用本地化的千位分隔符和小数精度格式化数字

时间:2017-06-08 13:43:07

标签: python string-formatting

可以使用小数精度格式化数字:

print("{:.2f}".format(7654321.234567))

可以使用本地化的千位分隔符格式化数字:

import locale
locale.setlocale(locale.LC_ALL, '')
print("{:n}".format(7654321.234567))

但我怎样才能同时做到这两件事呢?

我想在一个国家/地区打印7 654 321.23,例如千位分隔符是空格,{000}在一个千位分隔符是逗号的国家/地区7,654,321.23?但我事先无法知道本地化的分隔符是什么。

1 个答案:

答案 0 :(得分:1)

在点之前添加逗号 - 千位分隔符,并使用您的语言环境的相应分隔符替换:

>>> my_sep = locale.localeconv()['thousands_sep']
>>> print("{:,.2f}".format(7654321.234567).replace(',', my_sep))
7 654 321.23