¿Qué fórmula de JavaScript puedo usar para truncar un número al 50 más cercano? Ejemplo. queria 498 > 450
Yo he tratado
Math.round (498, 50 )
Y Math.ceil(498, 50)
Pero no estoy recibiendo. Por favor ayuda
Esto puede ser una confusión de terminología, mezclando términos como "más cercano" y "truncado", ninguno de los cuales describe completamente lo que demuestra el ejemplo.
El ejemplo que das siempre redondea hacia abajo , nunca hacia arriba, al valor personalizado más cercano (en este caso, 50 ). Para hacer eso, simplemente reste el resultado de % 50 . Por ejemplo:
const val = 498; console.log(val - val % 50);Incluso convertirlo en una función reutilizable:
const Nearest = (val, num) => val - val % num; console.log(Nearest(498, 50));Divide por 50, haz la operación, multiplica por 50.
console.log(Math.floor(498 / 50) * 50); console.log(Math.ceil(498 / 50) * 50); console.log(Math.round(498 / 50) * 50); console.log(Math.trunc(498 / 50) * 50);Divides tu número por 50, tomas el techo de ese número y luego lo multiplicas por 50.
Math.ceil(value / 50) * 50; Una nota al margen rápida: truncar tiene un significado completamente diferente para los números en Javascript: Math.trunc en MDN
Editar:
Si desea otra semántica de redondeo además de ceil , por supuesto puede usar floor (siempre va al múltiplo más bajo de 50):
Math.floor(451 / 50) * 50; // => 450