Sådan beregnes en procentvis ændring (stigning og fald) fra 2 værdier i JavaScript

villig til at løse en simpel procentvis ændring i JavaScript? Det første du skal gøre, er at tænke matematisk. Du skal hente forskellen (formindske eller øge) mellem de tal, du sammenligner. Denne forskel skal deles mellem det første tal (det, der ikke ændres). Resultatet af denne operation skal mulitplied med 100. At lave en abstraktion af denne proces i en JavaScript-funktion, ville vi have:

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

Bemærk, at hvis du ændrer ordrerne for Det Gamle og det nye nummer, ville svaret være anderledes, så sørg for, at det første argument er den første version af værdien, det betyder den, der ikke ændrede sig, og som andet argument den værdi, der ændrede sig.

eksempler

følgende eksempler viser forskellige tilfælde af en procentvis ændring både positiv (fald) som negativ (stigning) i henhold til synspunktet:

Note

en negativ værdi angiver en procentvis stigning.

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

hvor kan denne funktion bruges

hvis du for eksempel arbejder med billedkomprimeringsalgoritmer, kan du muligvis vise en menneskelig læsbar værdi i procent, der angiver, hvor meget der blev komprimeret fra det intime billede, hvor det gamle nummer er den originale Filstørrelse, f.eks.1 MB, og det nye nummer er 500 KB, hvilket ville resultere i et fald på 50%.

glad kodning !

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.