在python中使用本地化的千位分隔符和小数精度格式化数字
Posted
技术标签:
【中文标题】在python中使用本地化的千位分隔符和小数精度格式化数字【英文标题】:Formatting numbers with localized thousands separators and decimal precision in python 【发布时间】:2017-11-10 06:26:18 【问题描述】:可以用 :
格式化具有小数精度的数字print(":.2f".format(7654321.234567))
可以使用本地化的千位分隔符来格式化数字:
import locale
locale.setlocale(locale.LC_ALL, '')
print(":n".format(7654321.234567))
但是我怎样才能同时做到这两个呢?
我想在千位分隔符是空格的国家/地区打印7 654 321.23
,在千位分隔符是逗号的国家/地区打印7,654,321.23
?但我无法提前知道本地化分隔符是什么。
【问题讨论】:
更新是否满足您的要求? 差不多。一个完美的解决方案可以在 Jinja 环境中使用(即没有像my_sep
这样的中间变量)。但我不确定是否可以只玩format
。如果没有其他答案,我会在几天后接受您的答案!
啊,还有神社。那么为什么不将my_sep
保留为上下文变量呢?
【参考方案1】:
在点之前添加一个逗号 - 千位分隔符,并使用您所在地区的适当分隔符进行替换:
>>> my_sep = locale.localeconv()['thousands_sep']
>>> print(":,.2f".format(7654321.234567).replace(',', my_sep))
7 654 321.23
【讨论】:
以上是关于在python中使用本地化的千位分隔符和小数精度格式化数字的主要内容,如果未能解决你的问题,请参考以下文章