Vous savez probablement que les différents niveaux de réputation sur Stack Exchange sont formatés différemment lorsqu'ils sont vus à partir de la page de questions / d'un article. Il y a toutes les règles de formatage des représentants:
- si un utilisateur a 1 à 999 (un à trois chiffres) représentant, il est laissé tel quel.
- si un utilisateur a entre 1 000 et 9 999 répétitions (quatre chiffres), il reçoit la virgule comme séparateur:
9,999
si un utilisateur dispose de 10000 à 99999 rep (cinq chiffres), il est raccourci et arrondi. C'est-à-dire, 16741 rep est formaté comme
16.7k
, notez le séparateur de points contrairement à la virgule pour le représentant inférieur (point précédent).16750 résultera déjà
16.8k
(puisque cela semble être corrigé )16941 donne 16950
16.9k
arrondis à17k
, ainsi que 17014, par exemple.99941 arrondit à
99.9k
, 99950 arrondit à100k
(c'est quelque chose que je déteste en fait avec l'arrondi de répétition sur SE, car 100 000 est un tel jalon et 99950 est loin d'être le cas).
Si un utilisateur a 100000 à 999999 représentants, il est arrondi de cette façon:
100100
100k
arrondis à , 100500 arrondis à101k
. Le fait est que l'arrondi est fait, mais la partie décimale est supprimée (contrairement au représentant à quatre chiffres).100450 arrondit à
100k
, pas de pas pour arrondir 450 à 500. 100499 non plus - c'est toujours100k
.279843 arrondit à
280k
et 399999 arrondit à400k
.
En entrée, vous obtenez la réputation brute et la sortez sous forme formatée.
Vous pouvez considérer que l'entrée ne recevra pas de nombres / non-nombres invalides, ou des nombres avec des zéros en tête, c'est-à-dire 0001234
.
Parce que Jon Skeet ne semble pas atteindre 1 000 000 bientôt, votre code doit être aussi court que possible, vous n'avez pas besoin de gérer le représentant supérieur à un million (c'est-à-dire pas de cas particuliers pour 999500 et plus).
.
une virgule décimale. et avec un suffixe k
; sous réserve que si le troisième chiffre significatif est 0
et se trouve à droite de la virgule décimale, la valeur ne s'affiche que sur 2 chiffres significatifs. "Les seuils spécifiques pourraient alors être déplacés vers une seule liste de tests cas à la fin de la publication, ce qui est plus pratique pour le copier-coller dans un cadre de test.