Cum se calculează o modificare procentuală (creștere și scădere) de la 2 valori în JavaScript

dispus să rezolve o simplă modificare procentuală în JavaScript? Primul lucru pe care trebuie să-l faci este să gândești matematic. Trebuie să recuperați diferența (scădere sau creștere) între numerele pe care le comparați. Această diferență trebuie împărțită între primul număr (cel care nu se schimbă). Rezultatul acestei operațiuni trebuie să fie mulitplied cu 100. Făcând o abstractizare a acestui proces într-o funcție JavaScript, am avea:

/** * 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;}

rețineți că dacă schimbați ordinele numărului vechi și nou, răspunsul ar fi diferit, deci asigurați-vă că primul argument este prima versiune a valorii, adică cea care nu s-a schimbat și ca al doilea argument valoarea care s-a schimbat.

Exemple

următoarele exemple prezintă diferite cazuri de modificare procentuală atât pozitivă (scădere) cât și negativă (creștere) în funcție de punctul de vedere:

notă

o valoare negativă indică o creștere procentuală.

// 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);

unde poate fi utilizată această funcție

de exemplu, dacă lucrați cu algoritmi de compresie a imaginilor, poate doriți să afișați o valoare lizibilă umană în procente care indică cât de mult a fost comprimat din imaginea intială, unde numărul vechi este dimensiunea originală a fișierului, de exemplu 1MB, iar numărul nou este de 500KB, ceea ce ar duce la o scădere de 50%.

codificare fericit !

Lasă un răspuns

Adresa ta de email nu va fi publicată.