Necesito una función de utilidad que tome un valor entero (de 2 a 5 dígitos de longitud) que se redondea al siguiente múltiplo de 5 en lugar del múltiplo más cercano de 5. Esto es lo que obtuve:
function round5(x)
{
return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;
}
Cuando corro round5(32), me da 30, donde quiero 35.
Cuando corro round5(37), me da 35, donde quiero 40.
Cuando corro round5(132), me da 130, donde quiero 135.
Cuando corro round5(137), me da 135, donde quiero 140.
etc ...
¿Cómo hago esto?
javascript
math
rounding
Amit Erandole
fuente
fuente

round5(5)dar 5 o 10?Respuestas:
Esto hará el trabajo:
Es solo una variación del redondeo común
numberal múltiplo dexfunción más cercanoMath.round(number/x)*x, pero usar en.ceillugar de.roundhace que siempre se redondee hacia arriba en lugar de hacia abajo / hacia arriba de acuerdo con las reglas matemáticas.fuente
const roundToNearestMultipleOf = m => n => Math.round(n/m)*mUso:roundToNearestMultipleOf(5)(32)Esto redondeará el número al 5 más cercano. Para redondear siempre al 5 más cercano, utilice
Math.ceil. Del mismo modo, para redondear siempre hacia abajo, utilice enMath.floorlugar deMath.round. A continuación, puede llamar a esta función como lo haría con cualquier otra. Por ejemplo,volverá:
fuente
¿Me gusta esto?
fuente
Llegué aquí buscando algo similar. Si mi número es —0, —1, —2, debería bajar a —0, y si es —3, —4, —5 debería bajar a —5.
Se me ocurrió esta solución:
Y las pruebas:
fuente
Math.roundSaludos Paul
fuente
// redondear con precisión
// redondear a 5 con precisión
fuente
La razón para usar round es que la entrada esperada puede ser un número aleatorio.
¡¡¡Gracias!!!
fuente
¿tal vez?
fuente
intno está definido. Quizás quisieraparseInt, pero esto no sería necesario ya queMath.floordevuelve un número.