2011-04-27 137 views
35

我有兩個號碼,第一個,是原價,第二個,是折扣價格。計算兩個數字之間保存的百分比?

我需要計算一下,如果用戶以第二個價格購買,用戶可以節省多少百分比。

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

我不知道的是公式來計算這個。

+2

編程相關的? – ShreevatsaR 2011-04-27 03:50:08

+1

@ShreevatsaR - 你想我重新說出這個問題:「PHP公式計算兩個數字之間保存的百分比」 然後人們可以編寫'$ diff =(($ listPrice - $ actualPrice)/($ listPrice))* 100 ;' 無論哪種方式,你不能真正寫一個程序而不使用公式,因此,這個問題是編程相關的。 – Hailwood 2011-04-27 04:25:40

+0

如果你明確表示它是編程相關的,我認爲它會有所改進。正如所寫,這完全是一個數學問題。 – r12 2011-04-27 13:01:30

回答

82

我知道這是相當舊的,但我想這是不比任何人把這個。我發現從雅虎後有一個很好的解釋:

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

3

100% - 折扣價格/全價

+0

@Klas:這是我們所期望的。 – 2011-04-27 18:40:43

6

的公式將是(original - discounted)/original。即(365-165)/ 365 = 0.5479 ......

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

例如:

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

從技術上講,你會乘以100,然後打印%符號。值「100%」並不總是與「100」的值相同。 – r12 2011-04-27 03:43:20

+1

的確......百分比計算對我來說似乎總是很有趣 – 2011-04-27 03:44:01

+4

「%」的意思是「百分之」意思是「1/100」,「100%」意思是100/100 = 1。所以乘以「100%」就是相同乘以1:它保持不變。因此,0.6 = 0.6 * 100%= 60%,類似地1/2 = 1/2 * 100%= 50%等。 – ShreevatsaR 2011-04-27 03:51:38

2

我看到,這是一個非常古老的問題,但我這是怎麼計算出2號之間的百分比差異:

(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; 
} 
3
function calculatePercentage($oldFigure, $newFigure) 
{ 
    $percentChange = (($oldFigure - $newFigure)/$oldFigure) * 100; 
    return round(abs($percentChange)); 
} 
+0

雖然這段代碼可以解決這個問題,[包括解釋](// meta.stackexchange。 com/questions/114762/explain-completely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! – kayess 2016-12-02 09:04:50