Friendly Number

Friendly Number

Длинные числа можно переписать в более красивом виде. Так давайте напишем код для этого.

Вам нужно написать функцию для конвертации числа (аргумент number) используя следующие правила. Для начала, необходимо "обрезать" и округлить число до данной базы (аргумент base; по умолчанию 1000). Число должно стать коэффициентом с буквой (или буквами) определяющими степень базы. Коэффициент - это действительное число с определённым числом знаков после точки (аргумент decimals; по умолчанию 0). Вам дан список обозначений степеней (аргумент powers; по умолчанию ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']). Если дан суффикс (аргумент suffix; по умолчанию ‘’) , то необходимо добавить его в конец результата. Коофицент округляется в сторону нуля (5.6⇒5, -5.6⇒-5), если decimal == 0, в остальных случаях используйте стандартное математическое округление. Если данного списка степеней недостаточно, то используйте последний, а дальше, как обычное число. Если необходимое количество знаков после запятой (decimals) больше чем необходимо, то дополняйте нулями. И ноль всегда ноль без всяких степеней.

Давайте рассмотрим примеры. Это будет проще понять.

ЧислоРезультатОбьяснение
102"102"база по умолчанию 1000 и 102 меньше данной базы
10240"10k"база по умолчанию 1000 и округляем вниз
12341234, decimals=1"12.3M"один знак после точки
12000000, decimals=3"12.000M"дополняем нулями
12461, decimals=1"12.5k"стандартное округление
1024000000, base=1024, suffix="iB""976MiB"новая база и суффикс
-150, base=100, powers=["", "d", "D"]"-1d"отрицательное число и округление в сторону нуля
-155, base=100, decimals=1,...
You should be an authorized user in order to see the full description and start solving this mission.