Перейти к основному содержанию
CalcMax

Калькулятор двух скидок

Диапазон: 0,01 – 1 000 000 000

Диапазон: 0 – 100

Диапазон: 0 – 100

Результат

72,00

Цена к оплате

После первой скидки
80,00
Вы экономите
28,00
Итоговая скидка
28,00 %

Калькулятор для одной скидки найти легко. Нужен тот, который считает две, потому что на второй скидке арифметика перестаёт быть очевидной: двадцать процентов, а потом ещё десять — это скидка в двадцать восемь процентов, а не в тридцать. Вторая скидка берётся с цены, которую оставила первая, поэтому десять процентов — это десять процентов от восьмидесяти, а не от ста, и с исходной цены она снимает восемь пунктов вместо десяти. Вот это расстояние между ставкой, которую вам назвали, и ставкой, которую вы получили, и есть причина существования страницы, а на панели для него отведена отдельная строка: итоговая скидка — это две ставки, записанные одной, и она всегда меньше, чем сумма двух ставок.

Вторая скидка поверх 20 % с цены 100

Вторая скидкаИтоговая скидкаЦена к оплате
02080
102872
203664
304456

В каждой строке цена по прайсу закреплена на 100, а первая скидка на 20 процентах, поэтому движется здесь только вторая ставка. Средний столбец — это две ставки, записанные одной, и читать его сверху вниз и есть весь смысл таблицы: вторая скидка в 10 процентов поднимает итоговую до 28, а не до 30, вторая в 20 процентов — до 36, а не до 40, вторая в 30 процентов — до 44, а не до 50. Разрыв растёт вместе со второй ставкой, и он всегда равен второй ставке, умноженной на ту долю, которую первая скидка уже сняла: 10 процентов от оставшихся 80 — это 8, то есть те два пункта, которых не хватает первой строке. Первая строка — это случай одной скидки, поверх которой ничего не надстроено, а последний столбец — та же цена по прайсу, к которой применена ставка из первого столбца. Ни валюты, ни налога в таблице нет: каждая строка считает одно и то же число в одних и тех же единицах.

Формула

После первой скидки = цена по прайсу × (1 − скидка ÷ 100) | Цена к оплате = после первой скидки × (1 − вторая скидка ÷ 100)

Цена по прайсу
Цена до всякой скидки. От неё выведено каждое число на панели, поэтому ноль здесь отклоняется: он дал бы панель из нулей вместо ответа
Скидка (%)
Первая скидка, снятая с полной цены. На деле она больше второй: второй остаётся меньше, с чего снимать
Вторая скидка
Вторая скидка, снятая с той цены, которую оставила первая. Она снимает меньше, чем обещает её собственная ставка, — и вся страница ровно про эту арифметику
После первой скидки
Какой цена стала, когда первая скидка уже снята. Это база, с которой работает вторая, поэтому вторая десятка стоит восьми
Цена к оплате
Сколько вы платите. Главное число на панели, и именно к нему приводит применение второй скидки
Вы экономите
Цена минус то, что вы платите, — вычитание двух показанных чисел, а не сумма двух ставок. Оно и позволяет панели сходиться на напечатанных числах
Итоговая скидка
Две ставки, записанные одной. Она всегда меньше их суммы, а на двадцати и десяти равна двадцати восьми, а не тридцати

Страница нужна, когда к одной цене применяются две последовательные скидки и хочется узнать, какая выходит экономия: цена распродажи и ещё одна уценка на кассе, купон, снимаемый после сезонной скидки, бонусная ставка поверх акционной. Когда ставка одна, нужна страница для одной скидки: промежуточной строке, которую печатает эта, там нечего показывать.

Разобранные примеры

  1. Случай по умолчанию: 100 со скидкой 20 %, потом ещё 10 %

    1. После первой скидки: 100 × (1 − 20 ÷ 100) = 80,00
    2. После второй: 80 × (1 − 10 ÷ 100) = 72,00
    3. Экономия: 100,00 − 72,00 = 28,00
    4. Итоговая скидка: 28,00 ÷ 100 × 100 = 28,00 %

    Двадцать, а потом десять — та пара, по которой стоит читать всю страницу, потому что ответ равен двадцати восьми, а не тридцати, которые даёт сложение двух ставок, и эти два пункта разницы — вторая скидка, упавшая на восемьдесят вместо ста. Проверять здесь надо сложение, а не умножение: 100,00 минус 28,00 — ровно 72,00, и именно это тождество две последние строки и берегут.

  2. Вторая скидка равна нулю: 250 со скидкой 10 %

    1. После первой скидки: 250 × (1 − 10 ÷ 100) = 225,00
    2. После второй: 225 × (1 − 0 ÷ 100) = 225,00
    3. Экономия: 250,00 − 225,00 = 25,00
    4. Итоговая скидка: 25,00 ÷ 250 × 100 = 10,00 %

    Ноль во втором поле — законное значение, а не пустое, и две строки цены при нём схлопываются в одну: это и есть проверка того, что вторая ступень — настоящее умножение, а не надбавка, переодетая скидкой. Из-за этого же страница оказывается надмножеством страницы для одной скидки: при нулевой второй ставке они совпадают число в число.

  3. Цена с копейками: 49,99 со скидкой 15 %, потом 5 %

    1. После первой скидки: 49,99 × 0,85 = 42,4915, округляется до двух знаков = 42,49
    2. После второй: 42,49 × 0,95 = 40,3655, округляется до двух знаков = 40,37
    3. Экономия: 49,99 − 40,37 = 9,62
    4. Итоговая скидка: 9,62 ÷ 49,99 × 100 = 19,2448…, округляется до 19,24 %

    Здесь становится видно округление до копейки на каждом шаге, и здесь же стоит посмотреть на промежуточную строку. Неокруглённый первый шаг равен 42,4915, так что вторая скидка считается от 42,49, а не от того значения, которое протащило бы одно умножение. Итоговая скидка выходит 19,24, а не 20, которые дают 15 и 5, и вторая скидка отвечает за меньшую половину этой разницы.

  4. Две одинаковые ставки, на которых два соглашения расходятся

    1. После первой скидки: 10 × (1 − 33,33 ÷ 100) = 6,667, округляется до двух знаков = 6,67
    2. После второй: 6,67 × (1 − 33,33 ÷ 100) = 4,446889, округляется до двух знаков = 4,45
    3. Экономия: 10,00 − 4,45 = 5,55
    4. Итоговая скидка: 5,55 ÷ 10 × 100 = 55,50 %

    Цена десять и две ставки по трети — это случай, который и разделяет два способа считать. Если перемножить обе ставки разом, выйдет 10 × 0,6667 × 0,6667 = 4,444889, что округляется до 4,44; если округлять после каждого шага, выйдет 4,45. Страница берёт пошаговый вариант, и разница тут в одну копейку — но это копейка, которую читатель с чеком в руках увидит, поэтому страница и говорит, какой вариант она использует, вместо того чтобы дать это обнаружить.

  5. Наименьшая цена, которую принимает поле, и две половины

    1. После первой скидки: 0,01 × 0,5 = 0,005, округляется до двух знаков = 0,01
    2. После второй: 0,01 × 0,5 = 0,005, округляется до двух знаков = 0,01
    3. Экономия: 0,01 − 0,01 = 0,00
    4. Итоговая скидка: 0,00 ÷ 0,01 × 100 = 0,00 %

    Половина копейки — не цена, и округление вверх здесь обязано так поступить. Поэтому каждый шаг оставляет цену там, где она была, панель сообщает, что на двух пятидесятипроцентных скидках не сэкономлено ничего, а итоговая скидка читается нулём. Выглядит как сбой, а на деле это арифметика копейки: страница не может напечатать цену ниже своей наименьшей единицы, поэтому самая глубокая скидка, которую она выражает на самой маленькой цене, — никакая.

Ограничения

Прежде чем принимать эти числа слишком буквально, стоит знать два соглашения этой арифметики. Первое: каждый шаг округляется до копейки сразу, как это делает касса, а не так, что обе ставки перемножаются, а округление делается один раз. На большинстве цен оба пути совпадают; на некоторых расходятся на копейку, и страница выбирает пошаговый вариант, потому что именно у него числа сходятся на экране: цена минус сэкономленное равна цене к оплате ровно на том, что напечатано. Если вы сверяете эту страницу с чеком и расходитесь на копейку, причина, скорее всего, в этом, а чек — это и есть источник истины о том, в каком порядке применялись две скидки. Второе: цена не может опуститься ниже своей наименьшей единицы, поэтому достаточно глубокая пара скидок на достаточно маленькой цене перестанет уменьшать что-либо вообще: две пятидесятипроцентные скидки на одну сотую оставляют её на одной сотой и сообщают, что сэкономлено ничего. Это не изъян скидки, это её нижний предел. Ничего здесь не судит о том, настоящая ли скидка и хорошая ли она. Цена по прайсу — это число, которое вы вводите, и второго источника, чтобы его сравнить, у страницы нет, поэтому она скажет, к чему приводит снятие скидки с этой цены, и не скажет, по этой ли цене её вообще когда-нибудь продавали. В Соединённых Штатах этот вопрос составляет предмет руководств Федеральной торговой комиссии против обманчивого ценообразования, две статьи которых приведены ниже; они о том, что продавец вправе рекламировать, а не об арифметике, и страница и не пытается сверять с ними ввод. Всё здесь без налога и без валюты. Валюта не привязана, потому что арифметика одинакова в любой, а налог, доставка и сборы не моделируются: если налог с продажи применяется, он применяется к тому, что осталось после скидок, а не к цене по прайсу, и это расчёт для другой страницы. Наконец, предполагается, что две ставки независимы друг от друга. Некоторые акции таковы не являются: купон, в условиях которого написано, что он не складывается с другими предложениями, — это одна скидка, и ввод его во второе поле даст скидку больше, чем позволяют условия, потому что страница не знает, что в них написано.

Частые вопросы

Двадцать процентов, а потом ещё десять — это то же самое, что тридцать процентов?
Нет, и этот разрыв — причина существования страницы. Вторая десятка берётся с цены, которую оставила первая, а на сотне это восемьдесят, поэтому она снимает 8,00 вместо 10,00, а вместе выходит 28 процентов. Чем дальше две ставки друг от друга, тем сильнее итоговая скидка отстаёт от их суммы: две ставки по пятьдесят процентов дают 75, а не 100, а две ставки по десять процентов — 19, а не 20. Панель печатает итоговую скидку отдельной строкой, чтобы названное вам число и полученное можно было прочитать рядом.
Важен ли порядок двух скидок?
На результат — нет, при том округлении, которое применяет страница. Те же две ставки в обратном порядке дают ту же цену, потому что два шага — это те же два умножения в другом порядке, а умножение перестановочно, даже когда между ними округляют: каждый шаг округляет одно и то же промежуточное значение. А вот промежуточная строка от порядка меняется, потому что это цена после первой скидки, а не после второй. Поэтому скидку, которую, как вы помните, сняли на кассе, ставьте во второе поле, если хотите, чтобы строки шли в том порядке, в каком вы их пережили.
Почему сэкономленное — это вычитание, а не сумма двух скидок?
Потому что панель обязана сходиться на тех числах, которые печатает. Сумма двух скидок учла бы дважды ту часть цены по прайсу, которую первая скидка уже сняла, и результат не сошёлся бы со строкой цены. Цена по прайсу минус цена к оплате даёт число, которое читатель проверит одним вычитанием, и именно вокруг этого вычитания построены две последние строки: цена минус сэкономленное равна цене к оплате ровно на том, что видно на экране.
Почему страница округляет после каждой скидки, а не в конце?
Потому что так и работает применение двух скидок подряд, и потому что это тот вариант, у которого числа сходятся на экране. Касса снимает первую скидку, приходит к какой-то цене и снимает вторую уже с неё. На большинстве цен оба соглашения совпадают и могут разойтись на копейку: при цене десять и двух скидках по 33,33 процента пошаговое округление даёт 4,45, а перемножение обеих ставок разом — 4,44. Страница использует пошаговый вариант, и на ней есть пример, который это показывает, так что соглашение видно, а не обнаруживается через расхождение с ним.
Почему на цене в одну копейку две пятидесятипроцентные скидки не дают экономии?
Потому что половина копейки — не цена, а цена округляется вверх до своей наименьшей единицы. Одна сотая, уценённая вдвое, — это половина сотой, которая округляется назад к одной сотой, и вторая скидка делает то же самое ещё раз. Страница не может напечатать цену ниже своей наименьшей единицы, поэтому на самой маленькой цене самые глубокие скидки, которые она выражает, не дают ничего. Это нижний предел арифметики, а не ошибка в ней, и он же тот предел, из-за которого в примере выше выходит 4,45, а не 4,44.
Можно ли пользоваться этой страницей для скидки, которая не складывается с другими?
Только если обе скидки действительно обе применимы, а это вопрос условий, а не арифметики. Купон, в котором написано, что он не складывается с другими предложениями, — это одна скидка, и ввод его во второе поле даст скидку больше, чем позволяют условия, потому что у страницы нет поля для того, что в них написано, и нет способа сверить с ними ввод. Страница считает арифметику двух последовательных скидок и принимает обе ставки как есть; доступны ли вам обе на самом деле — это решать с продавцом, а не здесь.

Источники

Похожие калькуляторы