Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
ifów nigdy za dużo solution in Clear category for Friendly Number by PythOff
def friendly_number(number, base=1000, decimals=0, suffix='',
powers=['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']):
i = 0
print (number)
while base**i <= abs(number) and i < len(powers):
i += 1
if i > 0:
i -= 1
number /= base**i
print (i, number)
if (decimals == 0):
number = int(number)
else:
number = round(number, decimals)
if isinstance(number, int):
number *= 10
number /= 10
result = str(number)
j = decimals - 1
while (number * 10**decimals) % 10 == 0 and j > 0:
result += '0'
j -= 1
result += powers[i] + suffix
print (result)
return result
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
#assert friendly_number(1) == '1', '1'
#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'
#assert friendly_number(12000000, decimals=3) == '12.000M', 'test'
#assert friendly_number(102, decimals=2) == '102.00', 'test2'
#assert friendly_number(-150, base=100, powers=["","d","D"]) == '-1d', 'test3'
#assert friendly_number(10**24) == '1Y', 'test4'
#assert friendly_number(10**32) == '100000000Y', 'test5'
assert friendly_number(0, decimals=3, suffix="th") == '0.000th', 'test6'
Oct. 31, 2016