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

404
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório

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 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