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
number
al múltiplo dex
función más cercanoMath.round(number/x)*x
, pero usar en.ceil
lugar de.round
hace 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)*m
Uso: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.floor
lugar 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.round
Saludos 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
int
no está definido. Quizás quisieraparseInt
, pero esto no sería necesario ya queMath.floor
devuelve un número.