【问题标题】:How to format currency in its most readable form python如何以最易读的形式格式化货币python
【发布时间】:2020-10-01 19:03:33
【问题描述】:

所以我试图从一些非常大的数字中格式化货币,例如

spendings = [1204343.65, 1000000.01, 2310.08, 5.82]

例如,这里最易读的表格可能是:

[$1.2M, $1M, $2.31K, $5.82] 

那么什么是最合适的方法。 locale 和 python-money 无法进行所需的格式化,因为它们确实放置了逗号,但它们无法实现压缩。那么有没有办法我可以做到这一点,使其成为最易读的形式。我在 StackOverflow 上也遇到了很多答案,但没有一个能真正回答我想要实现的目标。

【问题讨论】:

    标签: python formatting currency


    【解决方案1】:

    总有办法。但你必须想办法:

    def human_format(num):
        num = float('{:.3g}'.format(num))
        magnitude = 0
        while abs(num) >= 1000:
            magnitude += 1
            num /= 1000.0
        return '${}{}'.format('{:f}'.format(num).rstrip('0').rstrip('.'), ['', 'K', 'M', 'B', 'T'][magnitude])
    

    因此将其应用于列表如下:

    spendings = [1204343.65, 1000000.01, 2310.08, 5.82]
    [human_format(i) for i in spendings]
    

    产生:

    ['$1.2M', '$1M', '$2.31K', '$5.82']
    

    附:一些 SO 答案实际上有助于此功能。我找不到它,但我会尽快喜欢它

    【讨论】:

      猜你喜欢
      • 2015-10-24
      • 1970-01-01
      • 2023-03-14
      • 2016-04-25
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      相关资源
      最近更新 更多