Probabilmente sai che i diversi livelli di reputazione su Stack Exchange sono formattati in modo diverso se visti dalla pagina delle domande / un post. Ci sono tutte le regole di formattazione di rep:
- se un utente ha da 1 a 999 (da una a tre cifre), viene lasciato così com'è.
- se un utente ha una ripetizione da 1000 a 9999 (quattro cifre), riceve la virgola come separatore:
9,999 se un utente ha da 10000 a 99999 rappresentanti (cinque cifre), viene accorciato e arrotondato. Vale a dire, 16741 rappresentante è formattato come
16.7k, notare il punto separatore a differenza della virgola per il rappresentante inferiore (punto precedente).16750 risulterà già
16.8k(poiché questo sembra essere stato risolto )16941 risultati
16.9k, 16950 arrotondati a17k, così come 17014, per esempio.99941 round a
99.9k, 99950 round a100k(questo è qualcosa che odio in realtà con il rep-rounding su SE, perché 100.000 è una pietra miliare e 99950 non è affatto vicino).
Se un utente ha una ripetizione da 100000 a 999999, viene arrotondato in questo modo:
100100 arrotondati fino a
100k, 100500 arrotondati fino a101k. Il fatto è che l'arrotondamento viene eseguito, ma la parte decimale viene eliminata (a differenza del rappresentante a quattro cifre).100450 arrotondano per difetto a
100k, nessun passo per arrotondare da 450 a 500. Neanche 100499 - è ancora100k.279843 arrotondamenti per
280keccesso e 399999 arrotondamenti per400k.
Come input, ti viene data la reputazione grezza e l'output è formattato.
Puoi considerare che l'input non riceverà numeri / non numeri non validi o numeri con zeri iniziali, ad es 0001234.
Poiché Jon Skeet non sembra raggiungere presto 1.000.000, il tuo codice deve essere il più breve possibile e non è necessario gestire un rappresentante superiore a un milione (ovvero nessun caso speciale per 999500 e oltre).
.un punto decimale e con un suffisso k; fatto salvo che se la terza cifra significativa è 0ed è a destra del punto decimale, il valore viene visualizzato solo in 2 cifre significative. "I tagli specifici potrebbero quindi essere spostati in un unico elenco di test casi alla fine del post, che è più conveniente per il copia-incolla in un framework di test.