【问题标题】:Negative & Positive Percentage Calculation负百分比和正百分比计算
【发布时间】:2010-12-08 21:51:20
【问题描述】:

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

30 - 60
94 - 67
10 - 14

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

例子:

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

谢谢

【问题讨论】:

  • 您提供的数字没有任何意义。你能告诉我们我们应该实际输出什么数字,而不是编造看起来正确的东西吗?
  • 到达那里,但不正确。 10 - 14 是 40% 的增长,而不是 2%
  • @Eineki 不改变问题逻辑 =) 30 + 0.5 * 60 = 60, 94 - 0.287 * 94 = 67, 10 + 0.285 * 14 = 14;这是一个奇怪的逻辑,但这是个问题。

标签: math


【解决方案1】:

这是非常基本的数学。

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

【讨论】:

    【解决方案2】:

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

    没有参考数字,使用百分比差异作为

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

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

    不过,从您的示例来看,您可能想要百分比误差,也就是说,您将您的第一个数字视为参考数字,并想知道另一个数字与该数字有何不同。那么等式,其中x 是参考号,是:

    100*(y-x)/x
    

    参见,例如,wikipedia,对此进行小型讨论。

    【讨论】:

      【解决方案3】:

      对于x - y,百分比是(y-x)/x*100

      【讨论】:

        【解决方案4】:

        简单的数学:

        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
        

        【讨论】:

          【解决方案5】:

          如果投票系统需要百分比,那么只有 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】:
            $c = ($a > $b) ? ($a-$b)/$a*-100 : ($b-$a)/$b*100;  
            

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

            【讨论】:

            • 我编写企业级应用程序,我也无法计算。人们可能会错过这一点的原因有很多。
            猜你喜欢
            • 2011-06-01
            • 2021-01-10
            • 1970-01-01
            • 1970-01-01
            • 2015-10-11
            • 2015-09-04
            • 2013-03-22
            • 2020-10-11
            相关资源
            最近更新 更多