Comportement souhaitéQuelle est la bonne façon de calculer le pourcentage d'augmentation/diminution entre deux nombres en utilisant Decimal.js?
Afficher le pourcentage d'augmentation/diminution de new_value
par rapport à old_value
, montrant indicateur négatif quand il y a eu une diminution, et 4 décimales (avec zéros si nécessaire).
comportement réel
Bonne
Si old_value
est 38.1200
et new_value
est 19.0600
résultat est -50.0000
Pas si bon
Si old_value
est 0.0000
et new_value
est 1.0000
résultat est Infinity
(je m'attends à ce que le résultat soit 100.0000
. Modifier: Je me rends compte maintenant qu'il n'y a rien de tel qu'un pourcentage d'augmentation de 0
à n'importe quoi, par messages comme this).
Ce que j'ai essayé
var old_value = new Decimal(0.0000);
var new_value = new Decimal(1.0000);
var difference = new_value.sub(old_value).dividedBy(old_value).times(100).toFixed(4, 7);
// without using Decimal.js, the equation above would be:
// (new_value - old_value)/old_value * 100
$(".result").text(difference.toString());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/decimal.js/7.3.0/decimal.min.js"></script>
<p class="result"></p>
Je vous suggère de le manipuler avec une condition if –