Convert number to million python

With Python2.7+ or v3 you just use the "," option in your string formatting - see PEP 378: Format Specifier for Thousands Separator for more info:

>>> "{:,}".format(100000000)
'100,000,000'

With Python3.6+ you can also use the "_" format - see PEP 515 for details:

>>> "{:_}".format(100000000)
'100_000_000'

or you can use a similar syntax with f-strings:

>>> number = 100000000
>>>f"{number:,}"
'100,000,000'

So I don't have to squint while reading big numbers, I have the 2.7 version of the code wrapped up in a shell function:

human_readable_numbers () {
    python2.7 -c "print('{:,}').format($1)"
}

Lastly, if for some reason you must work with code from Python versions 2.6 or earlier, you can solve the problem using the locale standard library module:

import locale
locale.setlocale(locale.LC_ALL, 'en_US')
locale.format('%d', 2**32, grouping=True)   # returns '4,294,967,296'

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Numerize is that library of python which is used to show large numbers into its readable format. It basically converts numerical format into the compact short format. There is no need to show how many zeroes are behind the number. It itself checks the numeric digits behind the coefficient and then provides output in the compact short form accordingly.
     

    Key Feature

    It enhances the understanding as there is no need to write a number of zeroes behind the number coefficient(also called as trailing zeroes).
    Examples: 
     

    1 -> 1
    10 -> 10
    100 -> 100
    1000 -> 1k
    1500 -> 1.5k
    1000000 -> 1M
    1000000000 -> 1B
    1000000000000 -> 1T

    Note: 
     

    • Here k represents thousand (i.e. coefficient will have 3 trailing digits ), M represents Million (i.e. coefficient will have 6 trailing digits), B represents Billion (i.e. coefficient will have 9 trailing digits)and T represents Trillion (i.e. coefficient will have 12 trailing digits). 
       
    • It will convert numerical numbers only up to 100T. 
       

    Installing Library

    To install this module type the below command in the terminal.
     

    pip install numerize 

    Example 1: 
     

    Python3

    from numerize import numerize

    a = numerize.numerize(100)

    print(a)

    a = numerize.numerize(1000)

    print(a)

    a = numerize.numerize(1500)

    print(a)

    a = numerize.numerize(1000000)

    print(a)

    a = numerize.numerize(1123456)

    print(a)

    a = numerize.numerize(10000000000)

    print(a)

    Output: 
     

    100
    1k
    1.5k
    1M
    1.12M
    10B

    Example 2: 
     

    Python3

    from numerize import numerize

    a = numerize.numerize(1234567.12, 2)

    print(a)

    a = numerize.numerize(1247854, 4)

    print(a)

    a = numerize.numerize(12134.123, 3)

    print(a)

    Output:
     

    1.23M
    1.2479M
    12.134K

    This is not a school project, just something to help me learn some Python! Just looking to see what I can improve on, looking for tips to reduce size & make it a bit easier for the computer to run it.

    suffixes = ["", "Thousand", "Million", "Billion", "Trillion", "Quadrillion","Quintillion", "Sextillion","Septillion","Octillion","Nonillion", "Decillion", "Undecillion","Duodecillion", "Tredecillion", "Quattuordecillion","Quindecillion","Sexdecillion","Septendecillion","Octodecillion", "Novemdecillion","Vigintillion","Unvigintillion","Duovigintillion","Trevigintillion","Quattuorvigintillion","Quinvigintillion", "Sexvigintillion","Septenvigintillion","Octovigintillion","Novemvigintillion","Trigintillion", "Untrigintillion", "Duotrigintillion","Quattuortrigintillion","Quintrigintillion", "Sextrigintillion","Septentrigintillion", "Octotrigintillion", "Novemtrigintillion","Quadragintillion", "Unquadragintillion", "Duoquadragintillion", "Trequadragintillion","Quattuorquadragintillion", "Quinquadragintillion","Sexquadragintillion","Septenquadragintillion", "Octoquadragintillion", "Novemquadragintillion","Quinquagintillion", "Unquinquagintillion", "Duoquinquagintillion", "Trequinquagintillion","Quattuorquinquagintillion","Quinquinquagintillion", "Sexquinquagintillion","Septenquinquagintillion", "Octoquinquagintillion", "Novemquinquagintillion","Sexagintillion", "Unsexagintillion", "Duosexagintillion", "Tresexagintillion","Quattuorsexagintillion", "Quinsexagintillion","Sexsexagintillion","Septensexagintillion", "Octosexagintillion", "Novemsexagintillion","Septuagintillion", "Unseptuagintillion", "Duoseptuagintillion", "Treseptuagintillion","Quattuorseptuagintillion", "Quinseptuagintillion","Sexseptuagintillion","Septenseptuagintillion", "Octoseptuagintillion", "Novemseptuagintillion","Octogintillion", "Unoctogintillion", "Duooctogintillion", "Treoctogintillion","Quattuoroctogintillion", "Quinoctogintillion","Sexoctogintillion","Septenoctogintillion","Octooctogintillion","Novemoctogintillion","Nonagintillion","Unnonagintillion","Duononagintillion","Trenonagintillion","Quattuornonagintillion","Quinnonagintillion","Sexnonagintillion","Septennonagintillion", "Octononagintillion", "Novemnonagintillion""Centillion", "Uncentillion", "Duocentillion", "Trecentillion", "Quattuorcentillion", "Quincentillion", "Sexcentillion","Septencentillion", "Octocentillion", "Novemcentillion","Primovegesimocent", "Unprimovegesimocent", "Duoprimovegesimocent", "Treprimovegesimocent", "Quattuorprimovegesimocent","Quinprimovegesimocent", "Sexprimovegesimocent", "Septenprimovegesimocent", "Octoprimovegesimocent", "Novemprimovegesimocent","Ducent", "Unducent", "Duoducent", "Treducent", "Quattuorducent", "Quinducent", "Sexducent", "Septenducent", "Octoducent", "Novemducent","Trecent", "Untrecent", "Duotrecent", "Tretrecent", "Quattuortrecent", "Quintrecent", "Sextrecent", "Septentrecent", "Octotrecent","Novemtrecent","Duotrigintatrecent", "Unduotrigintatrecent", "Duoduotrigintatrecent", "Treduotrigintatrecent", "Quattuorduotrigintatrecent","Quinduotrigintatrecent", "Sexduotrigintatrecent", "Septenduotrigintatrecent", "Octoduotrigintatrecent", "Novemduotrigintatrecent","Quadringent", "Unquadringent", "Duoquadringent", "Trequadringent", "Quattuorquadringent", "Quinquadringent", "Sexquadringent","Septenquadringent", "Octoquadringent", "Novemquadringent","Quingent", "Unquingent", "Duoquingent", "Trequingent", "Quattuorquingent", "Quinquingent", "Sexquingent", "Septenquingent","Octoquingent", "Novemquingent","Sescent", "Unsescent", "Duosescent", "Tresescent", "Quattuorsescent", "Quinsescent", "Sexsescent", "Septensescent", "Octosescent","Novemsescent","Septuagintisescent", "Unseptuagintisescent", "Duoseptuagintisescent", "Treseptuagintisescent", "Quattuorseptuagintisescent","Quinseptuagintisescent", "Sexseptuagintisescent", "Septenseptuagintisescent", "Octoseptuagintisescent", "Novemseptuagintisescent","Septingent", "Unseptingent", "Duoseptingent", "Treseptingent", "Quattuorseptingent", "Quinseptingent", "Sexseptingent","Septenseptingent", "Octoseptingent", "Novemseptingent","Octingent", "Unoctingent", "Duooctingent", "Treoctingent", "Quattuoroctingent", "Quinoctingent", "Sexoctingent", "Septenoctingent","Octooctingent", "Novemoctingent","Nongent", "Unnongent", "Duonongent", "Trenongent", "Quattuornongent", "Quinnongent", "Sexnongent", "Septennongent", "Octonongent","Novemnongent"]
    # Get the user's input number
    number = int(input("Enter a number "))
    # Turn the int number into a string and format with ,'s
    number = str("{:,}".format(number))
    # For loop to find the amount of commas in the newly made string
    commas = 0
    x = 0
    while x < len(number):
        if number[x] == ',':
            commas += 1
        x += 1
    # Use the amount of commas to decide the element in the array that will be used as a suffix
    # for example, if there are 2 commas it will use million.
    print(number.split(',')[0], suffixes[commas])
    # Wait for the user's input before closing so that you don't need to run it from a terminal
    input()