Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Friendly number solution in Clear category for Friendly Number by fortegs.exec
def friendly_number(number, base=1000, decimals=0, suffix='',
powers=['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']):
"""
Format a number as friendly text, using common suffixes.
"""
for p in powers:
if(abs(number) < base):
number = format(number,'.'+str(decimals)+'f')+p+suffix
break
elif(p == powers[len(powers)-1]):
number = format(number,'.'+str(decimals)+'f')+p+suffix
break
else:
if(decimals == 0):
if(number > 0):
number = number//base
else:
number = 1 + number//base
else:
number = number/base
'''
while((abs(number) > base) and (p < len(powers))):
p+=1
if(decimals == 0):
if(number > 0):
number = number//base
else:
number = 1 + number//base
else:
number = number/base
print(number)
number = format(number,'.'+str(decimals)+'f')+powers[p]+suffix
'''
return number
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert friendly_number(102) == '102', '102'
assert friendly_number(10240) == '10k', '10k'
assert friendly_number(12341234, decimals=1) == '12.3M', '12.3M'
assert friendly_number(12461, decimals=1) == '12.5k', '12.5k'
assert friendly_number(1024000000, base=1024, suffix='iB') == '976MiB', '976MiB'
Oct. 6, 2016