Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Friendly Number by nakanohito_piyo
def friendly_number(number, base=1000, decimals=0, suffix='',
powers=('', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')):
ret = ""
#add minus
if number<0:
ret += "-"
number=abs(number)
#reduce digits
r = base
p = 0
while(r<=number and p0:
x = ("{0:."+str(decimals)+"f}").format(round(x,decimals))
else:
x = str(int(x))
ret += x+powers[p]+suffix
#print(ret)
return ret
#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'
Feb. 26, 2016