折扣计算器

100 减 20% 是 80。20% 和 10% 叠加后实际优惠 28%,要付的是 72 而不是 70。减 20% 后卖 80 的商品,原价是 100。

问题解决了吗?

使用方法

  1. 在“折后价”里输入原价和折扣率(减去的百分比)。有叠加折扣时,再填第二、第三重折扣。
  2. 查看实付金额、优惠金额和实际折扣率。叠加折扣会列出每一步的计算。
  3. 已知折后价和折扣率时用“打折前原价”,已知两个价格时用“折扣率”。

计算方法

折后价 = 原价 × (1 − 折扣率 ÷ 100)。例如 100 减 20%:100 × 0.80 = 80,便宜了 20。注意这里的折扣率是“减去的百分比”,减 20% 就是中文说的“八折”。

叠加折扣是连乘:最终价格 = 原价 × (1 − d1) × (1 − d2) × (1 − d3)。实际折扣率 = 1 − (1 − d1)(1 − d2)(1 − d3)。

所以 20% 加 10% 是 1 − 0.80 × 0.90 = 28%,而不是 30%。因为第二重折扣是在已经降过的价格上再打。

由折后价反推原价:原价 = 折后价 ÷ (1 − 折扣率 ÷ 100)。减 20% 后是 80,则 80 ÷ 0.80 = 100。

折扣率 = (原价 − 折后价) ÷ 原价 × 100。叠加折扣调换顺序,最终价格不变,因为乘法与顺序无关。

为什么 20% 加 10% 不是 30%

每一重折扣都打在上一重降价后的价格上。100 减 20% 是 80,80 再减 10%(8)是 72。总共便宜 28,不是 30。

下表列出实际总折扣和把折扣率直接相加的结果。两次减 50% 也不会变成免费:100 先变 50,再变 25。

原价折扣最终价格实际总折扣直接相加
10020%8020%20%
10020% + 10%7228%30%
10050% + 50%2575%100%
20030% + 20% + 10%100.849.6%60%
8015% + 15%57.827.75%30%

反推打折前的价格

减 20% 后卖 80 的商品,原价不是 80 加 20%。20% 是从原价里减掉的,所以原价 = 80 ÷ (1 − 0.20) = 100。80 加 20% 得 96,是错的。

求折扣率

折扣率(%) = (原价 − 折后价) ÷ 原价 × 100。100 降到 80 就是减了 20%,即八折。折后价比原价高时折扣率为负,意思是涨价了。

尾数处理

价格显示到小数点后 2 位,但计算用全部位数,所以叠加多少重折扣也不会累积尾数误差。实体店每一步都会处理尾数,结账金额可能略有出入。

常见问题

八折再打九折等于七折吗?

不等于。第二次折扣打在已经降过的价格上。八折再九折是 0.8 × 0.9 = 0.72,也就是七二折,100 元的东西要付 72 元而不是 70 元。

折扣的先后顺序会影响结果吗?

不会。先九折再八折,和先八折再九折,最终价格一样,都是乘以 0.90 和 0.80。

怎么由折后价算原价?

用折后价除以“1 减折扣率(小数)”。减 20%(八折)就除以 0.80。直接在折后价上加 20% 是不对的。

怎么由两个价格算打了几折?

原价减折后价,除以原价再乘 100,就是减去的百分比。59.99 降到 41.99,大约减了 30%,也就是七折。

优惠是固定金额而不是百分比怎么办?

直接相减。100 元用 15 元优惠券就是 85 元。想知道相当于减了百分之几,在“折扣率”模式里输入 100 和 85。

任何货币都能用吗?

能。只要输入同一种货币的数字,结果也是同一单位。