siguientes serie resueltos ordenar ordenador ordena mayor las fracciones ejercicios diferente denominador comparar como javascript jquery rounding

serie - Javascript: redondea hacia arriba y hacia abajo a los 5 más cercanos, luego encuentra un denominador común



ordenador de fracciones (3)

Espero que mis cálculos sean correctos, pero aquí hay varias formas de "redondeo".

function sigfig(n, sf) { sf = sf - Math.floor(Math.log(n) / Math.LN10) - 1; sf = Math.pow(10, sf); n = Math.round(n * sf); n = n / sf; return n; } function precision(n, dp) { dp = Math.pow(10, dp); n = n * dp; n = Math.round(n); n = n / dp; return n; } function nearest(n, v) { n = n / v; n = Math.round(n) * v; return n; }

demo

Estoy buscando una manera de redondear Y bajar hasta el 5 más cercano y luego encontrar un gran denominador común de los dos números. Lo necesito para el título de un y-skale en un gráfico.

Este es mi código hasta ahora:

function toN5( x ) { var i = 1; while( x >= 100 ) { x/=10; i*=10; } var remainder = x % 5; var distance_to_5 = (5 - remainder) % 5; return (x + distance_to_5) * i; }

El objetivo es algo así: el valor máximo (redondear a los 5 más cercanos)

1379.8 -> 1500

Y al revés: valor mínimo (redondea a los 5 más cercanos)

41.8 -> 0

Entonces quiero encontrar un denominador común como 250 o 500

0 -> 250 -> 500 -> 750 -> 1000 -> 1250 -> 1500

o:

0 -> 500 -> 1000 -> 1500

¿Hay alguna manera de hacer algo así? Muchas gracias


Si quisiera redondear x al 500 más cercano, podría dividirlo por 500, redondearlo al número entero más cercano y luego multiplicarlo por 500 nuevamente:

x_rounded = 500 * Math.round(x/500);

Para redondearlo a la y más cercana, reemplaza 500 con y :

x_rounded = 250 * Math.round(x/250);


Usando esta api , puedes redondear cualquier número al múltiplo más cercano de cualquier número, arriba o abajo, con este comando:

$scm.round(number to be rounded).toNearest(multiple to which you want to round);

Por ejemplo, si quisiera redondear 536 a las 500 más cercanas, usaría:

$scm.round(536).toNearest(500);