Hogyan lehet kiszámítani a százalékos változást (növekedés és csökkenés) a JavaScript 2 értékéből

hajlandó megoldani egy egyszerű százalékos változást a JavaScript-ben? Az első, amit meg kell tennie, hogy matematikailag gondolkodjon. Meg kell letölteni a különbség (csökkenés vagy növekedés) a számok között, hogy összehasonlítjuk. Ezt a különbséget meg kell osztani az első szám között (amely nem változik). Ennek a műveletnek az eredményét 100-mal kell elosztani. Ennek a folyamatnak az absztrakcióját egy JavaScript függvényben készítjük el:

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

vegye figyelembe, hogy ha megváltoztatja a régi és az új szám sorrendjét, a válasz más lesz, ezért győződjön meg róla, hogy az első argumentum az érték első változata, ami azt jelenti, hogy nem változott, második argumentumként pedig a megváltozott érték.

példák

a következő példák a százalékos változás különböző eseteit mutatják be mind pozitív (csökkenés), mind negatív (növekedés) szempontból:

Megjegyzés

a negatív érték százalékos növekedést jelez.

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

hol használható ez a funkció

például, ha képtömörítési algoritmusokkal dolgozik, érdemes megjeleníteni egy ember által olvasható értéket százalékban, amely jelzi, hogy mennyit tömörítettek a belső képből, ahol a régi szám az eredeti fájlméret, például 1 MB, az új szám pedig 500 KB, ami 50% – os csökkenést eredményezne.

Boldog kódolást!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.