python human readable large numbers
Question: is there a python library that would make numbers such as this more human
readable

$187,280,840,422,780

edited: for example iw ant the output of this to be 187 Trillion not just
comma separated. So I want output to be trillions, millions, billions etc


Answer: As I understand it, you only want the 'most significant' part. To do so, use
`floor(log10(abs(n)))` to get number of digits and then go from there.
Something like this, maybe:

    
    
    import math
    
    millnames = ['',' Thousand',' Million',' Billion',' Trillion']
    
    def millify(n):
        n = float(n)
        millidx = max(0,min(len(millnames)-1,
                            int(math.floor(0 if n == 0 else math.log10(abs(n))/3))))
    
        return '{:.0f}{}'.format(n / 10**(3 * millidx), millnames[millidx])
    

Running the above function for a bunch of different numbers:

    
    
    for n in (1.23456789 * 10**r for r in range(-2, 19, 1)):
        print('%20.1f: %20s' % (n,millify(n)))
                     0.0:                    0
                     0.1:                    0
                     1.2:                    1
                    12.3:                   12
                   123.5:                  123
                  1234.6:           1 Thousand
                 12345.7:          12 Thousand
                123456.8:         123 Thousand
               1234567.9:            1 Million
              12345678.9:           12 Million
             123456789.0:          123 Million
            1234567890.0:            1 Billion
           12345678900.0:           12 Billion
          123456789000.0:          123 Billion
         1234567890000.0:           1 Trillion
        12345678900000.0:          12 Trillion
       123456789000000.0:         123 Trillion
      1234567890000000.0:        1235 Trillion
     12345678899999998.0:       12346 Trillion
    123456788999999984.0:      123457 Trillion
    1234567890000000000.0:     1234568 Trillion
    

