一尘不染

在python中将长数字格式化为字符串

python

在Python中,有什么简单的方法可以将整数格式化为表示以K表示成千上万,以M表示成千上万,并在逗号后仅保留几位数的字符串?

我想将7436313显示为7.44M,将2345显示为2,34K。

是否有一些可用的%字符串格式化运算符?还是只能通过在循环中实际除以1000并逐步构造结果字符串来完成?


阅读 130

收藏
2020-12-20

共1个答案

一尘不染

我认为没有内置功能可以做到这一点。您必须自己滚动,例如:

def human_format(num):
    magnitude = 0
    while abs(num) >= 1000:
        magnitude += 1
        num /= 1000.0
    # add more suffixes if you need them
    return '%.2f%s' % (num, ['', 'K', 'M', 'G', 'T', 'P'][magnitude])

print('the answer is %s' % human_format(7436313))  # prints 'the answer is 7.44M'
2020-12-20