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,... |