所需行为
与new_value
相比,显示old_value
的增加/减少百分比,减少时显示负数指示,以及4位小数(必要时带尾随零)。
实际行为
好
如果old_value
为38.1200
且new_value
为19.0600
,则结果为-50.0000
不太好
如果old_value
为0.0000
且new_value
为1.0000
,则结果为Infinity
(我希望结果为100.0000
。修改:我现在意识到,根据this这样的帖子,没有从0
到任何事物的百分比增加。
我尝试过什么
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>
答案 0 :(得分:-1)
我假设方程式是正确的,只是Infinity
结果给了我,所以这里解决了&#34;句柄&#34;问题:
var old_value = "38.1200";
if (old_value === "0.0000") {
// show an infinity sign or something
$(".result").text("HI!!");
} else {
old_value = new Decimal(old_value);
var new_value = new Decimal(19.0600);
var difference = new_value.sub(old_value).dividedBy(old_value).times(100).toFixed(4, 7);
$(".result").text(difference.toString());
}
&#13;
<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>
&#13;