疊加折扣的套用順序並不會改變最終價格,當你透過折扣計算機套用它們時也是如此,因為百分比折扣以乘法形式複合,而乘法具有交換律。以一個 $100 的商品為例,先套用 20% 折價券,再套用 10% 折價券:你支付 $72,省下 $28。反過來,先套用 10% 再套用 20%,你同樣會落在 $72,也同樣省下 $28。兩條路徑描述的是同一個連續乘法(最終 = 價格 × (1 − d₁ ÷ 100) × (1 − d₂ ÷ 100)),而乘法並不在乎哪一個因子先出現。每種順序的最終數字都完全相同。
購物者最直覺想到的說法是兩張折價券必須相加:20% 加上 10% 等於打 30% 折扣。那個直覺是錯的,而且值得仔細拆解,而這正是設計良好的折扣計算機所揭示的事情。這個工具會把每個百分比套用到前一輪折扣後剩下的價格上,然後將所有步驟摺疊成一個單一等效比率。在上面的範例中,這個等效比率是 28%,永遠小於百分比的總和,而且每疊加一張折價券,這個差距就會拉大。如果順序真的會造成影響,那個等效比率就不會是一個穩定的比較數字;它之所以穩定,正說明了最終價格與順序無關。那種複合機制的更深層原理探討於 折扣計算機如何運作:內部的數學,而實際的疊加陷阱本身則說明於 疊加折扣會相加嗎?計算機數學。試試 折扣計算機,在你的瀏覽器中實際操作一次。

為何乘法讓順序變得無關緊要
一旦百分比以小數表示,經過那一輪折扣後倖存下來的價格比例就是 (1 − d ÷ 100)。兩張兩張折價券 d₁ 與 d₂ 依序套用後,倖存的比例為 (1 − d₁ ÷ 100) × (1 − d₂ ÷ 100)。這兩個因子的順序並不影響乘積:0.80 × 0.90 等於 0.90 × 0.80,兩者都等於 0.72。把這個 0.72 乘上原價,不論哪張折價券先套用,都會得到相同的最終售價。直覺相加的 30% 與真實等效比率 28% 之間那 2% 的落差,完全來自於第二張折價券只看見已被砍過的 $80,而不是原來的 $100。
這並非折扣的特殊性質。它就是同一個交換律特性,讓我們能重新排列任何乘法:a × b = b × a。由於計算機以保留因子代表每張折價券,並把所有保留因子相乘以得到最終價格,因此調換輸入的順序只是把乘積中的因子重新排列,永遠不會改變乘積本身。三張、四張,甚至二十張折價券都遵循同樣的邏輯:不管你疊加多少列,最終價格都與順序無關。每條路徑都會抵達同一個目的地。
如何在折扣計算機中測試疊加折扣的順序
- 在任何現代瀏覽器中開啟折扣計算機;不需要安裝任何東西,也不需要註冊,所有運算都在本機以 JavaScript 執行。
- 將原價輸入價格欄位,例如 100。
- 輸入第一個折扣百分比,例如 20,立即查看出現的售價與省下的金額。
- 點選「疊加另一個折扣」,在新的一列中輸入第二個百分比,例如 10。
- 讀取你支付的最終價格、總共省下的金額,以及計算機顯示的合併等效折扣百分比。
- 以相反順序輸入相同的百分比 — 先 10 再 20 — 並再次讀取輸出結果。
- 把新的最終價格、總共省下的金額與等效百分比,與上一次執行的數值對照;兩者應該精確到分都完全相同。
結果就是「順序無關」的具體展現:相同的原價與同一組百分比,無論折價券如何排列,都會給出相同的最終售價、相同的省下金額、以及相同的合併等效折扣。如果你曾看到計算機對同樣的輸入在不同的順序下顯示不同的數字,請檢查是否不小心更動了某個百分比或輸入,因為底層的乘積本身不可能產生差異。計算機只在顯示時做四捨五入(小數兩位),所以中間數值保持精確,你所看到的數字則保持簡潔。
疊加陷阱:為何直覺的加法是錯的
順序無關的規則是好消息,但它旁邊有一個陷阱,幾乎所有購物者第一次疊加折價券時都會踩到。陷阱在於誤以為兩個百分比會相加:打 20% 折扣再外加 10% 折扣,一定等於打 30% 折扣。這個假設是錯的,因為第二張折價券並不是作用在原價上,而是作用在已經被砍過的價格上。一步一步拆解 $100 商品,就能清楚看出原因:
- 原價:$100。
- 套用 20%:$100 × (1 − 0.20) = $100 × 0.80 = $80。你省下了 $20。
- 對剩下的 $80 套用 10%:$80 × (1 − 0.10) = $80 × 0.90 = $72。你又省下 $8。
- 總共省下:$20 + $8 = $28。總等效折扣:佔 $100 的 28%,而不是 30%。
你原本預期會省下的 $2 從未出現,因為第二張 10% 折價券是套用在 $80 之上,而不是原來的 $100。若要對 $100 達到 30% 的等效折扣,結果會是 $70,而計算機只有在單一折價券確實為 30% 時才會顯示 $70,絕不會因為疊加 20% + 10% 而出現 $70。這就是「疊加折扣的結果小於百分比總和」的規則,計算機強制執行這個規則,而這個規則也正是讓順序問題變得多餘的同一件事:如果順序會影響結果,你就無法把一疊折扣彙整成一個單一可比較的數字,但計算機能給你那個數字,正因為順序是無關的。
不同疊加情境的比較
| 疊加模式 | 順序是否改變最終價格? | 直覺總和與真實等效比率 |
|---|---|---|
| 兩張折價券,任何順序 | 否 | 等效比率永遠小於直覺總和 |
| 三張或更多折價券,任何順序 | 否 | 直覺總和與等效之間的落差,會隨每多一張折價券而擴大 |
| 全館折扣百分比加上額外折價券 | 否 | 等效值等於每一個 (1 − d/100) 因子的乘積 |
| 以兩種不同順序輸入的相同輸入 | 否 | 計算機回傳相同的最終價格、省下金額與等效百分比 |
若要得到你自己數字的精確最終價格與精確等效百分比,計算機會在你輸入時逐步完成乘法。上表僅說明關係的方向性與大致幅度;精確數字取決於你輸入的百分比與原價,因此請使用工具讀取任何特定交易的實際數字。
順序問題實際出現的時機
大多數購物者盯著收據或結帳畫面,想要再驗算一次數字時,才會碰到順序問題。以下三種情況很常見,而每一種情況的答案都相同。
第一種,比較店家「特價品再打 80 折」的 20% 折扣,與競爭對手的直接 30% 折扣。兩者不是同一個數字,因為那額外的 20% 是疊加在已被特價壓低的價格之上。把兩個百分比一起輸入計算機疊加,你就能讀出真實的等效折扣,判斷哪個交易實際省更多 — 而不需要煩惱店家先套用了哪個百分比,因為順序並不會影響結果。
第二種,稽核店員的計算。如果收據上顯示套用了兩張折價券,而你想知道最終價格是否正確,最快的檢查方式就是把原價與兩個百分比以任何順序輸入計算機。如果最終價格與收據一致,店員就是對的;如果不一致,你就有具體數字可以與客服討論。順序不是稽核的一部分,因為兩種順序會得到相同的最終價格,所以差異不可能歸咎於折價券的輸入順序。
第三種,推算多層或階梯式促銷,例如會員折扣、季節特賣與折價碼同時套用在一件商品上。計算機能接受這筆交易所需的任意多列疊加,而因為最終價格與順序無關,你可以用最方便的順序輸入百分比,並且仍然信任結果。
還有一個值得在實務中留意的細節。由於計算機只在顯示時做四捨五入,你看到的是兩位小數,但底層的乘積在每一步都保持精確。因此,即使印出的收據對中間價格做了四捨五入,計算機的最終價格對你所輸入的原價與百分比清單來說,才是誠實的答案。如果你曾經納悶,調換順序是否會讓你多省一分錢,數學本身的答案 — 並且由計算機確認 — 就是不會。