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

253
Visualizações
¿Redondeo de números enteros a números enteros en JavaScript?

Así que tengo algunos números x = 320232 y = 2301 z = 12020305 . Quiero redondear estos números usando JavaScript para que se conviertan en x = 320000 y = 2300 z = 12000000 .

Math.round y Math.floor pero resulta que solo funcionan con valores decimales como a = 3.1; Math.round(a); // Outputs 3 y no a números enteros.

Entonces, mi pregunta es si podemos redondear números enteros usando JavaScript y, en caso afirmativo, ¿cómo?

Editar: lo quiero en la ronda de los lugares iniciales de 3 dígitos como se ve en las variables anteriores. Como si hubiera otra variable llamada c = 423841 Debería redondearse para convertirse en c = 424000 .

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

0

Podrías trabajar con el logaritmo de diez y ajustar los dígitos.

 const format = n => v => { if (!v) return 0; const l = Math.floor(Math.log10(Math.abs(v))) - n + 1; return Math.round(v / 10 ** l) * 10 ** l; }; console.log([0, -9876, 320232, 2301, 12020305, 123456789].map(format(3)));

about 4 years ago · Juan Pablo Isaza Relatório

0

La solución es primero calcular cuántos números deben redondearse y luego usarlos en una ronda.

Math.round(1234/100)*100 redondearía a 1200 para que podamos usar esto para redondear. Entonces solo necesitamos determinar con qué reemplazar 100 en este ejemplo.

O sea que sería un 1 seguido de LENGTH - 3 ceros. Ese número se puede calcular como es 10 a la potencia de LENGTH - 3 , en JS: 10 ** (length - 3) .

 var x = 320232; var y = 2301; var z = 12020305; function my_round(number){ var org_number = number; // calculate integer number var count = 0; if (number >= 1) ++count; while (number / 10 >= 1) { number /= 10; ++count; } // length - 3 count = Math.round(count) - 3; if (count < 0){ count = 0; } // 10 to the power of (length - 3) var helper = 10 ** count; return Math.round(org_number/helper)*helper; } alert(my_round(x)); alert(my_round(y)); alert(my_round(z));

No es el código más bonito, aunque traté de hacerlo un código explicable.

about 4 years ago · Juan Pablo Isaza Relatório

0

Esto debería funcionar:

 function roundToNthPlace(input, n) { let powerOfTen = 10 ** n return Math.round(input/powerOfTen) * powerOfTen; } console.log([320232, 2301,12020305, 423841].map(input => roundToNthPlace(input, 3))); Output: [320000, 2000, 12020000, 424000]
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