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

136
Views
Límite y número redondo

Quiero limitar el número a un máximo de 5 dígitos redondeando el decimal. Si tenemos menos de 5 dígitos, el número debe permanecer intacto. ¿Alguien podría ayudarme a escribir esa función?

 function limitAndRoundNumber(number) { ... }

Entradas y salidas ejemplares:

 limitAndRoundNumber(1.234) should return 1.234 (unchanged because number has less than 5 digits) limitAndRoundNumber(1.234567) should return 1.2346 limitAndRoundNumber(12.34567) should return 12.346 limitAndRoundNumber(123.4567) should return 123.46 limitAndRoundNumber(1234.567) should return 1234.6 limitAndRoundNumber(12345) should return 12345

El número de entrada puede ser mayor que 0 y menor que 100000

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Tiendo a usar lo siguiente para reducir un número a un número determinado de decimales

 Math.round(number * multiplier) / multiplier

Donde 'multiplicador' es 10 a la potencia del número de decimales. Ahora solo necesita averiguar cuál debe ser el multiplicador, y puede hacerlo redondeando a un valor entero y obteniendo la longitud de cadena del número. Entonces algo como:

 function limitAndRoundNumber(number) { const wholeDigits = Math.round(number).toString().length; const power = wholeDigits <= 5 ? 5 - wholeDigits : 0; const multiplier = 10**power; return Math.round(number * multiplier) / multiplier; } console.log(limitAndRoundNumber(1.23)); console.log(limitAndRoundNumber(1.234567)); console.log(limitAndRoundNumber(12.34567)); console.log(limitAndRoundNumber(123.4567)); console.log(limitAndRoundNumber(1234.567)); console.log(limitAndRoundNumber(12345)); console.log(limitAndRoundNumber(123456));

about 4 years ago · Juan Pablo Isaza Report

0

Una solución es convertir el número en una cadena y usar String.slice(0,requiredLength) para ajustar la longitud antes de devolver una versión numérica de la cadena.

La longitud dependería de si el número contenía un separador decimal, que podría determinarse mediante un condicional dentro de la función.

Fragmento de trabajo:

 function limitAndRoundNumber(number) { const length = (number.toString().indexOf('.')) ? 6 : 5; return parseFloat(number.toString().slice(0,length)); } console.log(limitAndRoundNumber(1.234567)); console.log(limitAndRoundNumber(12.34567)); console.log(limitAndRoundNumber(123.4567)); console.log(limitAndRoundNumber(1234.567)); console.log(limitAndRoundNumber(12345)); console.log(limitAndRoundNumber(12)); console.log(limitAndRoundNumber(12.3));

La función podría modificarse para permitir cualquier longitud, al incluir un argumento de longitud y hacer referencia a él en la prueba del operador ternario para el separador decimal:

 length = (number.toString().indexOf('.')) ? length+1 : length;
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!