Disculpas si estoy haciendo una pregunta simple ya que las respuestas existentes no pudieron proporcionarme una solución. Me gustaría saber cuál es la forma más sencilla de ajustar (techo de piso o redondo) un valor a la unidad más cercana a ese valor dado un tamaño de cuadrícula. No me importa mucho el patrón de ajuste, siempre que sea consistente, pero debe funcionar con unidades de cuadrícula fraccionarias, así como con números negativos.
Algunos ejemplos, si el tamaño de la cuadrícula es 0,25 y se pasa un valor a través de la función de ajuste:
0.1 = 0 0.5 = 0.5 -0.2 = -0.25 0.9 = 1 -0.45 = -0.5 3.125 = 3 -42.675 = -42.75 99.765 = 100 Si se garantiza que mi rango está entre 0 y 1 (o 0 y -1), probablemente podría usar const x_snapped = Math.round(x / grid) * grid . Sin embargo, esto dejaría de funcionar si x y/o grid son mayores que 1 o menores que -1, creo que solo se devolverían números enteros en ese momento.
const x_grid = Math.round(x / grid) * grid De hecho, esto funcionará con todos los valores de x : por alguna razón, estaba convencido de que el resultado se redondearía a un número entero más allá de 1 y los decimales se descartarían. Perdón por mi tonto error, pero al menos esto proporciona una respuesta útil para otros que se encuentran con la misma pregunta y encuentran esto.