计算两个数字之间保存的百分比?

时间:2011-04-27 03:38:00

标签: math formula

我有两个数字,第一个,是原价,第二个,是折扣价。

如果用户以第二价格购买,我需要确定用户节省的百分比。

example
25, 10 = 60%  
365, 165 = 55%

我不知道的是计算这个的公式。

9 个答案:

答案 0 :(得分:110)

我知道这已经很老了,但我认为这和任何一个一样好。我从雅虎发现了一个很好的解释:

Let's say you have two numbers, 40 and 30.  

  30/40*100 = 75.
  So 30 is 75% of 40.  

  40/30*100 = 133. 
  So 40 is 133% of 30. 

The percentage increase from 30 to 40 is:  
  (40-30)/30 * 100 = 33%  

The percentage decrease from 40 to 30 is:
  (40-30)/40 * 100 = 25%. 

These calculations hold true whatever your two numbers.

Original Post

答案 1 :(得分:29)

((list price - actual price) / (list price)) * 100%

例如:

((25 - 10) / 25) * 100% = 60%

答案 2 :(得分:8)

公式为(original - discounted)/original。即(365-165)/ 365 = 0.5479 ......

答案 3 :(得分:4)

我发现这是一个非常古老的问题,但这就是我如何计算两个数字之间的百分比差异:

(1 - (oldNumber / newNumber)) * 100

因此,30到40之间的百分比差异是:

(1 - (30/40)) * 100 = +25% (meaning, increase by 25%)

40到30之间的百分比差异是:

(1 - (40/30)) * 100 = -33.33% (meaning, decrease by 33%)

在php中,我使用这样的函数:

function calculatePercentage($oldFigure, $newFigure) {
        if (($oldFigure != 0) && ($newFigure != 0)) {
            $percentChange = (1 - $oldFigure / $newFigure) * 100;
        }
        else {
            $percentChange = null;
        }
        return $percentChange;
}

答案 4 :(得分:4)

    function calculatePercentage($oldFigure, $newFigure)
{
    $percentChange = (($oldFigure - $newFigure) / $oldFigure) * 100;
    return round(abs($percentChange));
}

答案 5 :(得分:3)

100% - 折扣价/全价

答案 6 :(得分:0)

这是带反转选项的功能

它将返回:

  • 'change' - 您可以在模板中用于css类的字符串
  • 'result' - 简单结果
  • '格式化' - 格式化结果
function getPercentageChange( $oldNumber , $newNumber , $format = true , $invert = false ){

    $value      = $newNumber - $oldNumber;

    $change     = '';
    $sign       = '';

    $result     = 0.00;

    if ( $invert ) {
         if ( $value > 0 ) {
        //  going UP
            $change             = 'up';
            $sign               = '+';
            if ( $oldNumber > 0 ) {
                $result         = ($newNumber / $oldNumber) * 100;
            } else {
                $result     = 100.00;
            }

        }elseif ( $value < 0 ) {        
        //  going DOWN
            $change             = 'down';
            //$value                = abs($value);
            $result             = ($oldNumber / $newNumber) * 100;
            $result             = abs($result);
            $sign               = '-';

        }else {
        //  no changes
        }

    }else{

        if ( $newNumber > $oldNumber ) {

            //  increase
            $change             = 'up';

            if ( $oldNumber > 0 ) {

                $result = ( ( $newNumber / $oldNumber ) - 1 )* 100;

            }else{
                $result = 100.00;
            }

            $sign               = '+';

        }elseif ( $oldNumber > $newNumber ) {

            //  decrease
            $change             = 'down';

            if ( $oldNumber > 0 ) {

                $result = ( ( $newNumber / $oldNumber ) - 1 )* 100;

            } else {
                $result = 100.00;
            }

            $sign               = '-';

        }else{

            //  no change

        }

        $result = abs($result);

    }

    $result_formatted       = number_format($result, 2);

    if ( $invert ) {
        if ( $change == 'up' ) {
            $change = 'down';
        }elseif ( $change == 'down' ) {
            $change = 'up';
        }else{
            //
        }

        if ( $sign == '+' ) {
            $sign = '-';
        }elseif ( $sign == '-' ) {
            $sign = '+';
        }else{
            //
        }
    }
    if ( $format ) {
        $formatted          = '<span class="going '.$change.'">'.$sign.''.$result_formatted.' %</span>';
    } else{
        $formatted          = $result_formatted;
    }

    return array( 'change' => $change , 'result' => $result , 'formatted' => $formatted );
}

答案 7 :(得分:0)

我为我的一个应用程序做了相同的百分比计算器,如果您在“月度计划”上选择“年度计划”,则需要显示保存的百分比。它可以帮助您在给定期间内节省一定数量的资金。我已将其用于订阅。

  

每月支付一年- 2028   年付一次- 1699

     

1699比2028减少了 16.22%

     

公式:减少百分比= | 2028-1699 | / 2028 = 329/2028 = 0.1622   = 16.22%

我希望对寻求相同实施方式的人有所帮助。

func calculatePercentage(monthly: Double, yearly: Double) -> Double {
    let totalMonthlyInYear = monthly * 12
    let result = ((totalMonthlyInYear-yearly)/totalMonthlyInYear)*100
    print("percentage is -",result)
    return result.rounded(toPlaces: 0)
}

用法:

 let savingsPercentage = self.calculatePercentage(monthly: Double( monthlyProduct.price), yearly: Double(annualProduct.price))
 self.btnPlanDiscount.setTitle("Save \(Int(savingsPercentage))%",for: .normal)

扩展用法,用于将Double的百分比取整:

extension Double {
/// Rounds the double to decimal places value
func rounded(toPlaces places:Int) -> Double {
    let divisor = pow(10.0, Double(places))
    return (self * divisor).rounded() / divisor
   }
}

我已附上图片以供理解。

谢谢Percentage Calc - Subscription

答案 8 :(得分:0)

如果总数不是:200 并得到50个号码

那么200中50的百分比是:

(50/200)* 100 = 25%