Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

245
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!