![[old] Friendly Number](https://dk1vwk12q8pjl.cloudfront.net/media/logos/task/middle/friendly-number-disabled.png)
[old] Friendly Number

L'aspect des nombres longs peut être amélioré, alors écrivons un code pour le réaliser !
Il vous faut écrire une fonction pour convertir un nombre en chaîne de caractères,
selon des règles expliquées ci-dessous.
Tout d'abord, il faudra écourter ce nombre selon une certaine base (argument base; valeur par défaut : 1000).
La valeur est un nombre "float", avec des décimales après le point (argument decimals; valeur par défaut : 0).
Pour la valeur, utiliser la troncature si decimals = 0 (5.6 ==> 5, -5.6 ==> -5) ;
sinon, procéder à un arrondi standard.
Si le nombre de décimales est supérieur au nombre de chiffres après le point, compléter par des 0 à la fin.
Le nombre sera exprimé avec une lettre désignant la puissance ("power") accolée à la valeur.
Une liste des désignations pour le "power" sera fournie (argument powers;
valeur par défaut : ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']).
S'il n'y a pas suffisamment de "power", utilisez le maximum.
Si l'on vous donne une unité, un suffixe (argument suffix; valeur par défaut ‘’), il faut l'ajouter à la fin.
Pour finir, zero est toujours zero, sans "power", mais avec un suffixe.
Etudions quelques exemples, pour éclaircir le descriptif :
-
n=102
result: "102", la base prend la valeur par défaut 1000 et 102 est plus petit que cette base. -
n=10240
result: "10k", la base prend la valeur par défaut 1000, et arrondi inférieur. -
n=12341234, decimals=1
result: "12.3M", un chiffre après la virgule. -
n=12000000, decimals=3
result: "12.000M", zéros de queue pour compléter. -
n=12461, decimals=1
result: "12.5k", arrondi standard. -
n=1024000000, base=1024, suffix='iB'
result: '976MiB', base spécifique et suffixe. -
n=-150, base=100, powers=['', 'd', 'D']
result: '-1d', valeur négative et troncature. -
n=-155, base=100, decimals=1, powers=['', 'd', 'D']
result: '-1.6d', valeur négative et arrondi standard. -
n=255000000000, powers=['', 'k', 'M']
result: '255000M', il n'y a pas assez de "powers".
Input: Un nombre, comme entier.
L'argument "base" comme entier, valeur par défaut 1000.
L'argument "decimals" comme entier, valeur par défaut 0.
L'argument "powers" comme liste de chaîne de caractères, valeur par défaut ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'].
Output: Le nombre converti, comme chaîne de caractères.
Exemple:
friendlyNumber(102) == '102' friendlyNumber(10240) == '10k' friendlyNumber(12341234, {decimals: 1}) == '12.3M' friendlyNumber(12000000, {decimals: 3}) == '12.000M' friendlyNumber(12461, {decimals: 1}) == '12.5k' friendlyNumber(1024000000,...