Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

235
Visualizações
Formato de número avanzado con sufijo incremental- javascript

Necesito ayuda con mi función. Soy nuevo en la codificación y esta tarea es parte de las tareas de nivel de aprendiz de Coderslang.

Implemente una función que si n < 1000, debe redondearse a un solo dígito después de un punto decimal De lo contrario, para reducir la longitud de un número, necesitamos usar las letras 'K', 'M', 'B', ' T' para representar miles, millones, billones o trillones. No estamos realmente interesados en ser súper precisos aquí. Si el número excede 999.99T se convierte en 1.00aa, después de 999.99aa pasa a 1.00ab. Cuando el número llegue a 999.99az, se convertirá en 1.00ba y así sucesivamente.

El texto en negrita es donde tengo un problema, no estoy seguro de cuál es la mejor manera de escribir esta función y necesito ayuda. A continuación se muestra lo que he intentado hasta ahora, pero estoy fallando en dos partes de la prueba: la función formatNumber debería funcionar correctamente para números inferiores a 999az. Y la función formatNumber no debe cortar los ceros finales.

Mi código hasta ahora:

 export const formatNumber = (n) => { let number = n; let suffix = [97, 92]; let newNumber = ""; if (n < 1000) { return n.toFixed(1); } else if (n < 1000000) { return (n / 1000).toFixed(2) + 'K'; } else if (n < 1000000000) { return (n / 1000000).toFixed(2) + 'M'; } else if (n < 1000000000000) { return (n / 1000000000).toFixed(2) + 'B'; } else if (n < 1000000000000000){ return (n / 1000000000000).toFixed(2) + 'T'; } while (number > 1000) { (number /= 1000); if (suffix[1] < 122) { suffix[1]++; } else { suffix[0]++; suffix[1] = 97 } } const stringNumber = String(number); const i = stringNumber.indexOf("."); if (i >= 0) { newNumber = stringNumber.substring(0, i) + "." + stringNumber.substring(i + 1, i + 3); } else { newNumber = stringNumber + ".00"; } return newNumber + String.fromCharCode(suffix[0]) + String.fromCharCode(suffix[1]); }

He buscado en este foro y otros y estoy luchando, cualquier ayuda sería apreciada. Siento que o estoy complicando demasiado el proceso de pensamiento o me estoy perdiendo algo obvio. ¿Es mi ciclo while? Probé number.toFixed y number.toExponential sin suerte

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Fue una solución muy simple, estaba complicando demasiado esto.

 export const formatNumber = (n) => { let number = n; let suffix = [97, 92]; let newNumber = ""; if (n < 1000) { return n.toFixed(1); } else if (n < 1000000) { return (n / 1000).toFixed(2) + 'K'; } else if (n < 1000000000) { return (n / 1000000).toFixed(2) + 'M'; } else if (n < 1000000000000) { return (n / 1000000000).toFixed(2) + 'B'; } else if (n < 1000000000000000){ return (n / 1000000000000).toFixed(2) + 'T'; } while (number > 1000) { (number /= 1000); if (suffix[1] < 122) { suffix[1]++; } else { suffix[0]++; suffix[1] = 97 } } newNumber = number.toFixed(2); return newNumber + String.fromCharCode(suffix[0]) + String.fromCharCode(suffix[1]); }```
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda