disposto a resolver uma mudança percentual simples em JavaScript? O primeiro que você precisa fazer é pensar matematicamente. Você precisa recuperar a diferença (diminuir ou aumentar) entre os números que você está comparando. Essa diferença precisa ser dividida entre o primeiro número (aquele que não muda). O resultado desta operação precisa ser mulitplied por 100. Fazendo uma abstração desse processo em uma função JavaScript, terí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;}
observe que se você alterar as ordens do número antigo e novo, a resposta seria diferente, então certifique-se de que o primeiro argumento é a primeira versão do valor, isso significa aquele que não mudou e como segundo argumento o valor que mudou.
Exemplos
os exemplos A seguir mostram diferentes casos da percentagem de mudança, tanto positivo (diminuição) como negativos (aumento) de acordo com o ponto de vista:
Nota
Um valor negativo indica um aumento percentual.
// 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);
Onde pode essa função ser usado
Por exemplo, se você estiver trabalhando com algoritmos de compressão de imagens, você pode querer exibir um formato legível por humanos valor em percentual que indica o quanto foi compactada do intial imagem, onde o oldNumber é o tamanho do arquivo original e.g 1MB e o newNumber é 500KB, o que resultaria em uma redução de 50%.
codificação feliz !