【问题标题】:Formatting numbers with localized thousands separators and decimal precision in python在python中使用本地化的千位分隔符和小数精度格式化数字
【发布时间】:2023-04-06 19:24:01
【问题描述】:

可以用 :

格式化具有小数精度的数字
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 保留为上下文变量呢?

标签: python string-formatting


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多