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

Formatting numbers with localized thousands separators and decimal precision in python

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

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

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

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

但是我怎样才能同时进行这两项操作呢?

我想在千位分隔符为 space 的国家/地区打印 7 654 321.23,在千位分隔符为逗号的国家/地区打印 7,654,321.23?但是我无法提前知道本地化分隔符是什么。

在点之前添加一个逗号 - 千位分隔符,并用您所在区域设置的适当分隔符进行替换:

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