Hoe bereken je een procentuele verandering (toename en afname) van 2 waarden in JavaScript

bereid om een eenvoudige procentuele verandering in JavaScript op te lossen? De eerste die je moet doen, is wiskundig denken. U moet het verschil (vermindering of verhoging) tussen de getallen die u vergelijkt ophalen. Dit verschil moet worden verdeeld tussen het eerste nummer (degene die niet verandert). Het resultaat van deze operatie moet worden mulitply door 100. Het maken van een abstractie van dit proces in een JavaScript-functie, zouden we hebben:

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

merk op dat als u de volgorde van het oude en het nieuwe getal wijzigt, het antwoord anders zou zijn, dus wees er zeker van dat het eerste argument de eerste versie van de waarde is, dat betekent degene die niet veranderde en als tweede argument de waarde die veranderde.

voorbeelden

de volgende voorbeelden tonen verschillende gevallen van een procentuele verandering zowel positief (daling) als negatief (stijging), afhankelijk van het standpunt:

Noot

een negatieve waarde duidt op een procentuele stijging.

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

Waar kan deze functie worden gebruikt

bijvoorbeeld, als u met beeldcompressiealgoritmen werkt, wilt u misschien een leesbare waarde in procenten weergeven die aangeeft hoeveel gecomprimeerd is van de intiale afbeelding, waarbij het oldNumber de oorspronkelijke Bestandsgrootte is, bijvoorbeeld 1MB en het newNumber 500KB is, wat zou resulteren in een afname van 50%.

Gelukkig coderen !

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.