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

402
Views
Compruebe si el valor es mayor o igual al 0,05 más bajo más cercano en JavaScript

Quiero verificar si un valor decimal es mayor o igual al valor más bajo de 0.05

Ejemplo

 Value | Expected Nearest 0.05 value 11.10 | 11.05 11.11 | 11.10 11.12 | 11.10 11.13 | 11.10 11.14 | 11.10 11.15 | 11.10

Intenté usar la fórmula

 parseFloat((Math.floor(value * 20) / 20).toFixed(2))

Pero falla para 11.10 y 11.15. Usando la fórmula anterior, obtengo el mismo resultado que el valor, pero los valores esperados son diferentes. ¿Qué fórmula debo usar para corregir los casos de prueba anteriores?

over 4 years ago · Santiago Trujillo
4 answers
Answer question

0

Puede multiplicar los valores por 100 para eliminar temporalmente los dos puntos decimales necesarios, el número más cercano ahora se convierte en un múltiplo de 5, luego puede eliminar el resto de la división euclidiana por 5 y obtener lo que desea.

Y dado que un múltiplo exacto de 5 debe llevarse al valor inferior más cercano, puede eliminar condicionalmente un 5 cuando el resto es igual a 0.

La función de fórmula podría ser algo como:

 const f = (v) => (((Math.floor(v*100) - (Math.floor(v*100) % 5 || 5)) / 100).toFixed(2)); console.log('11.10', f(11.10)); console.log('11.11', f(11.11)); console.log('11.12', f(11.12)); console.log('11.13', f(11.13)); console.log('11.14', f(11.14)); console.log('11.15', f(11.15));

over 4 years ago · Santiago Trujillo Report

0

Puede tomar una compensación y tomar un valor de piso múltiple.

 const format = f => Math.floor((f - 0.01) * 20) / 20; console.log([11.10, 11.11, 11.12, 11.13, 11.14, 11.15, 11.16, 11.17, 11.18, 11.19].map(format));
 .as-console-wrapper { max-height: 100% !important; top: 0; }

over 4 years ago · Santiago Trujillo Report

0

Si mi manera es la más eficiente, no estoy seguro, pero así es como lo haría:

 var x = Math.floor(value * 100); var remainder = x % 5; if (remainder == 0) { // deal with dropping down the 11.10 to 11.05 remainder = 5 } var result = parseFloat((x - remainder) / 100).toFixed(2);

SIN EMBARGO, esto solo funciona para valores que tienen 2 decimales: para tener en cuenta el tercer decimal, debe modificarlo para:

 var x = value * 100; var remainder = x % 5; if (remainder == 0) { // deal with dropping down the 11.10 to 11.05 remainder = 5 } var result = parseFloat((x - remainder) / 100).toFixed(2);
over 4 years ago · Santiago Trujillo Report

0

Lo que entiendo de su pregunta es que desea el valor más bajo más cercano y la respuesta debe ser menor que el valor en sí. Entonces, siendo n el número del que necesita el múltiplo más bajo y siendo v el valor, tal vez pueda intentar algo como:

 const nearestMultiple = (v) => (Math.floor((v - 0.001) /n) * n).toFixed(2);

La fórmula básica para encontrar un múltiplo sería Math.floor((v/n) * n) , pero para su caso único, no queremos que la función devuelva el número dado, por lo tanto, se resta 0.001.

over 4 years ago · Santiago Trujillo 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!