¿Cómo calcular un cambio porcentual (aumento y disminución) de 2 valores en JavaScript

Dispuesto a resolver un cambio porcentual simple en JavaScript? Lo primero que tienes que hacer es pensar matemáticamente. Necesita recuperar la diferencia (disminuir o aumentar) entre los números que está comparando. Esta diferencia debe dividirse entre el primer número (el que no cambia). El resultado de esta operación debe ser multiplicado por 100. Haciendo una abstracción de este proceso en una función JavaScript, tendríamos:

/** * Calculates in percent, the change between 2 numbers. * e.g from 1000 to 500 = 50% * * @param oldNumber The initial value * @param newNumber The value that changed */function getPercentageChange(oldNumber, newNumber){ var decreaseValue = oldNumber - newNumber; return (decreaseValue / oldNumber) * 100;}

Tenga en cuenta que si cambia el orden del número antiguo y el nuevo, la respuesta sería diferente, así que asegúrese de que el primer argumento es la primera versión del valor, que significa la que no cambió y como segundo argumento el valor que cambió.

Ejemplos

Los siguientes ejemplos muestran diferentes casos de cambio porcentual tanto positivo (disminución) como negativo (aumento) según el punto de vista:

Nota

Un valor negativo indica un aumento porcentual.

// X = 500// Y = 234// % = 53.2getPercentageChange(500, 234);// X = 1000// Y = 890// % = 11getPercentageChange(1000, 890);// X = 5// Y = 2// % = 60getPercentageChange(5, 2);// X = 100// Y = 120// % = -20// Note: negative as it incremented 20%getPercentageChange(100, 120);// X = 500// Y = 500// % = 0// Note: no percent changegetPercentageChange(500, 500);

Dónde se puede usar esta función

Por ejemplo, si está trabajando con algoritmos de compresión de imágenes, es posible que desee mostrar un valor legible por humanos en porcentaje que indique cuánto se comprimió de la imagen inicial, donde el número antiguo es el tamaño de archivo original, por ejemplo, 1 MB, y el nuevo número es de 500 KB, lo que resultaría en una disminución del 50%.

¡Feliz codificación !

Deja una respuesta

Tu dirección de correo electrónico no será publicada.