否定与正百分比计算

时间:2010-12-08 21:51:20

标签: math

假设我有3组数字,我想要他们差异的百分比。

30 - 60
94 - 67
10 - 14

我想要一个计算每两个数字之间差异百分比的函数,最重要的是支持正负百分比。

示例:

30 - 60 : +100%
94 - 67 : -36% ( just guessing )
10 - 14 : +40%

由于

7 个答案:

答案 0 :(得分:17)

这是非常基本的数学。

从x到y的差异是100*(y-x)/x

答案 1 :(得分:6)

这里的一个重要问题是,您的某个数字是否为已知参考,例如理论值。

如果没有参考编号,请使用百分比差异作为

100*(y-x)/((x+y)/2)

这里的重要区别是除以平均值,使定义对称。

从您的示例来看,您似乎可能需要百分比错误,也就是说,您正在考虑将您的第一个数字作为参考编号,并想知道另一个数字是如何偏离的。然后,x是参考编号的等式是:

100*(y-x)/x

请参阅,例如wikipedia,对此进行一些小讨论。

答案 2 :(得分:4)

x - y百分比为(y-x)/x*100

答案 3 :(得分:3)

简单的数学:

function differenceAsPercent($number1, $number2) {
    return number_format(($number2 - $number1) / $number1 * 100, 2);
}

    echo differenceAsPercent(30, 60); // 100
    echo differenceAsPercent(94, 67); // -28.72
    echo differenceAsPercent(10, 14); // 40

答案 4 :(得分:-1)

$c = ($a > $b) ? ($a-$b)/$a*-100 : ($b-$a)/$b*100;  

在乌克兰,孩子们在12岁时学习这些数学计算。:)

答案 5 :(得分:-1)

如果投票系统需要百分比,那么Andrey Korolyov是唯一正确回答的人。

实施例

10票对1票反对= 90%
10票对5票反对= 50%
10票对3票反对= 70%
100票对1票反对= 99%
1000票对1票反对= 99.9%

1票对10票反对= -90%
5票对10票反对= -50%
3票赞10票反对= -70%
1票对100票反对= -99%
1票对1000票反对= -99.9%

function perc(a,b){
console.log( (a > b) ? (a-b)/a*100 : (b - a)/b*-100);

}

答案 6 :(得分:-1)

我认为以下PHP代码将实现最佳数学效果。

if ($oldValue !== null && $oldValue !== 0) {
  $percentChange = number_format(($newValue - $oldValue) / $oldValue * 100, 2);
} else if ($oldValue !== null && $oldValue !== 0) {
  $percentChange = number_format(($newValue - $oldValue) / $oldValue * 100, 2);
}else {
  $percentChange = 0;
}