假设我有3组数字,我想要他们差异的百分比。
30 - 60
94 - 67
10 - 14
我想要一个计算每两个数字之间差异百分比的函数,最重要的是支持正负百分比。
示例:
30 - 60 : +100%
94 - 67 : -36% ( just guessing )
10 - 14 : +40%
由于
答案 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;
}