gpt4 book ai didi

javascript - 使用 Decimal.js 计算两个数字之间的百分比增加/减少的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-28 10:44:13 25 4
gpt4 key购买 nike

期望的行为

显示 new_valueold_value 相比的增加/减少百分比,减少时显示负指示符,并显示 4 位小数(如有必要,可在后面加零) 。

实际行为


如果old_value38.1200并且new_value19.0600结果为-50.0000

不太好
如果 old_value0.0000 并且 new_value1.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>

最佳答案

我假设方程是正确的,只是Infinity结果让我困惑,所以这里是“处理”这个问题的解决方案:

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());
}
<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>

关于javascript - 使用 Decimal.js 计算两个数字之间的百分比增加/减少的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46627832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com