【问题标题】:Calculate a given number to a percentage between two given numbers [duplicate]将给定数字计算为两个给定数字之间的百分比[重复]
【发布时间】:2017-02-16 11:11:20
【问题描述】:

我试图通过提供百分比应该基于的数字来计算两个数字之间的百分比(在堆栈溢出中找不到这个 - 只有两个数字之间的百分比)。

让我解释一下:

$start_number = 14700
$end_number = 14900


// This is the number to calculate a percentage for
// in this basic example this should come to 50%
$percentage_number = 14800

我知道我需要做什么,但不知道怎么写:

其中 $start_number 为 0%

$end_number 是 100%

$percentage_number = X%

【问题讨论】:

  • 你的问题一点都不清楚..
  • 没有得到你的问题你能解释一下吗?
  • ($percentage_number-$start_number)/($end_number-$start_number)

标签: php math


【解决方案1】:
$difference = $end_number - $start_number; // 200
$difference_from_start = $end_number - $percentage_number; // 100
$percentage = $difference_from_start / $difference; // 0.5 (50%) 

这是你想要的吗?

【讨论】:

  • @FriendlyCode 如果$percentage_number 为 14900,则为 0。
  • 这个答案效果很好,我只需要反转百分比,这样它就会随着更高的数字而变得更高。 $new_percentage = 1 - $percentage;
【解决方案2】:

这很简单:

$start_number = 14700;
$end_number = 14900;
$percentage_number = 14800;

$result = (($end_number - $percentage_number) * 100) / ($end_number - $start_number);

echo $result;

输出:

50

【讨论】:

    【解决方案3】:

    我认为解决方案是:

    百分比 = 100 * (percentage_number - start_number) / (end_number - start_number)

    【讨论】:

      【解决方案4】:

      在这种情况下,$percentage_number 不应小于 $start_number,否则百分比将以负数计算。

      您可以使用以下公式:

      ( ($percentage_number - $start_number) / ($end_number - $start_number) ) * 100 ;

      希望对你有帮助。

      【讨论】:

        【解决方案5】:

        假设您有两个数字,40 和 30。

        30/40*100 = 75。 所以 30 是 40 的 75%。

        40/30*100 = 133。 所以 40 是 30 的 133%。

        从 30 增加到 40 的百分比是:
        (40-30)/30 * 100 = 33%

        从 40 减少到 30 的百分比是: (40-30)/40 * 100 = 25%。

        无论您的两个数字如何,这些计算都是正确的。

        在 PHP 中

        $oldFigure = 14;
        $newFigure = 12.50;
        
        $percentChange = (1 - $oldFigure / $newFigure) * 100;
        
        echo $percentChange;
        

        【讨论】:

          【解决方案6】:
          diff = $end_number - $start_number
          
          (diff is now = 200)
          
          mid = $end_number - (your number) 
          
          (mid is now = 100)
          
          res = (mid / diff) * 100
          
          (res is now = 50%)
          

          【讨论】:

            【解决方案7】:

            如果比例从$start_number 开始并在$end_number 结束,则其大小为$end_number-$start_number。如果$percentage_number 在刻度中,则从开始到刻度的单位是$percentage_number-$start_number。因此,量表中的相对比例为:

            ($percentage_number-$start_number)/($end_number-$start_number)
            

            乘以 100 即可得到百分比。

            【讨论】:

              猜你喜欢
              • 2021-10-15
              • 2011-08-13
              • 1970-01-01
              • 2021-12-11
              • 2018-07-22
              • 1970-01-01
              • 1970-01-01
              • 2021-10-18
              • 1970-01-01
              相关资源
              最近更新 更多