Probablemente sepa que los diferentes niveles de reputación en Stack Exchange tienen un formato diferente cuando se ven desde la página de preguntas / una publicación. Existen todas las reglas de formateo de repeticiones:
- si un usuario tiene 1 a 999 (uno a tres dígitos) rep, se deja como está.
 - Si un usuario tiene 1000 a 9999 repeticiones (cuatro dígitos), recibe la coma como separador: 
9,999 si un usuario tiene de 10000 a 99999 repeticiones (cinco dígitos), se acorta y se redondea. Es decir, 16741 rep está formateado como
16.7k, observe el separador de puntos a diferencia de la coma para el rep inferior (punto anterior).16750 ya resultará
16.8k(ya que esto parece estar solucionado )16941 da como resultado
16.9k, 16950 redondea hasta17k, al igual que 17014, por ejemplo.99941 redondea a
99.9k, 99950 redondea a100k(esto es algo que realmente odio con el redondeo de repeticiones en SE, porque 100,000 es un hito y 99950 no está cerca).
Si un usuario tiene 100000 a 999999 repeticiones, se redondea de esta manera:
100100 redondea hacia abajo
100k, 100500 redondea hasta101k. La cuestión es que el redondeo está hecho, pero la parte decimal se elimina (a diferencia del representante de cuatro dígitos).100450 se redondea hacia abajo
100k, no hay paso para redondear 450 a 500. Tampoco 100499, sigue siendo100k.279843 redondea hacia arriba
280ky 399999 redondea hacia400k.
Como entrada, se le da la reputación bruta y la emite como formateada.
Puede considerar que la entrada no recibirá números / no números no válidos, o números con ceros a la izquierda, es decir 0001234.
Debido a que Jon Skeet no parece llegar a 1,000,000 pronto, su código debe ser lo más breve posible , no necesita manejar el representante mayor de un millón (es decir, no hay casos especiales para 999500 y superiores).

.un punto decimal y con un sufijok; sujeto a la advertencia de que si la tercera cifra significativa está0y está a la derecha del punto decimal, entonces el valor se muestra solo a 2 cifras significativas " . Los valores de corte específicos se podrían mover a una sola lista de prueba casos al final de la publicación, que es más conveniente para copiar y pegar en un marco de prueba.Respuestas:
Japt,
5048 bytesPrimer intento; Puede haber un mejor método.
Pruébalo en línea!
Cómo funciona
fuente
JavaScript (ES6),
7668 bytesOtro primer intento. Gracias a Dios por eso
.toLocaleString(), la alternativa más corta que pude encontrar es 21 bytes más larga ...Esto separa miles entre uno
,u otro., según el país en el que viva. Paracincodos bytes más, puede hacer que siempre use una coma:fuente
JavaScript (ES6), 71
Vencer a @ETHProductions mientras no ve mi pista.El lo vió.Prueba
Prueba
fuente
ES6,
6862 bytesEditar: guardado 6 bytes cuando me di cuenta de que
["1", "001"]stringifica a"1,001".Editar: ¡Se guardaron 2 bytes para arreglar el comentario de @ Mwr247!
fuente
16950da en16.9klugar de17kPython 2.7, 58 bytes
Tuve que usar
(x+.5)para lidiar con el16950->17kcaso ...fuente