formatting long numbers as strings in python

后端 未结 9 2434
轻奢々
轻奢々 2020-11-28 07:00

What is an easy way in Python to format integers into strings representing thousands with K, and millions with M, and leaving just couple digits after comma?

I\'d li

相关标签:
9条回答
  • 2020-11-28 07:39

    No String Formatting Operator, according to the docs. I've never heard of such a thing, so you may have to roll your own, as you suggest.

    0 讨论(0)
  • 2020-11-28 07:41

    I don't think there's a built-in function that does that. You'll have to roll your own, e.g.:

    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'
    
    0 讨论(0)
  • 2020-11-28 07:41

    I don't think there are format operators for that, but you can simply divide by 1000 until the result is between 1 and 999 and then use a format string for 2 digits after comma. Unit is a single character (or perhaps a small string) in most cases, which you can store in a string or array and iterate through it after each divide.

    0 讨论(0)
提交回复
热议问题