首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将货币格式化为最易读的python格式

如何将货币格式化为最易读的python格式
EN

Stack Overflow用户
提问于 2020-10-02 03:03:34
回答 1查看 37关注 0票数 0

所以我试图从一些浮点数格式化货币,这些浮点数非常大。

代码语言:javascript
运行
复制
spendings = [1204343.65, 1000000.01, 2310.08, 5.82]

例如,这里最具可读性的表单可能是:

代码语言:javascript
运行
复制
[$1.2M, $1M, $2.31K, $5.82] 

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-02 03:29:51

不会总是有办法的。但你必须找到一种方法:

代码语言:javascript
运行
复制
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])

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

代码语言:javascript
运行
复制
spendings = [1204343.65, 1000000.01, 2310.08, 5.82]
[human_format(i) for i in spendings]

产生:

代码语言:javascript
运行
复制
['$1.2M', '$1M', '$2.31K', '$5.82']

附注:一些这样的答案在这个功能中实际上是有帮助的。我找不到它,但我会尽快喜欢它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64161729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档