Как решить это уравнение? - PullRequest
0 голосов
/ 16 июля 2010

Я создаю интернет-магазин и должен рассчитать, сколько нужно взимать с клиента, чтобы убедиться, что сборы отменены. Платежная система добавляет комиссионные, и я хочу, чтобы клиент их оплачивал.

Комиссия составляет 2,45% и € 1,10.

Это означает, что если клиент совершит покупку за 100 евро, а я сообщу эту стоимость в платежную систему, мы получим только 96,45 евро. (100 - (2,45 + 1,1)).

Это не хорошо.

Как рассчитать правильную стоимость для отправки в платежную систему, чтобы мы получили € 100? Это не просто сказать € 100 + 2,45% + € 1,1 = € 103,55 и сообщить об этом в платежную систему. Потому что тогда платежная система скажет

€ 103,55 - ((2,45% от 103,55) + 1,1)
€ 103,55 - (2,536975 + 1,1)
103,55 € - 3636975
€ 99,913025

и это, очевидно, не правильно.

Так как мне рассчитать, что отправить в платежную систему, чтобы получить желаемое значение?

Я зашел так далеко, что это следующее уравнение:

X - (X * 0,0245) - 1,10 = Y
Здесь X - это желаемая сумма для отправки в платежную систему, а Y - это сумма, на которую покупатель совершил покупку (100), поэтому:

X - (X * 0,0245) - 1,10 = 100

Но как мне решить это, чтобы узнать, что такое X?

Заранее спасибо

Ответы [ 7 ]

14 голосов
/ 16 июля 2010

Wolfram Alpha решит это за вас. Сейчас я работаю над более программным решением.

Ваше уравнение X - (X * 0.0245) - 1.10 = Y было точным. Давайте упростим это следующим образом:

X - (X * 0.0245) - 1.10 = Y
X - 0.0245 * X - 1.10 = Y
(1 - 0.0245) * X - 1.10 = Y
0.9755 * X = Y + 1.10
X = (Y + 1.10)/0.9755

По вашему определению, X - желаемая сумма, а Y - сумма, которую платит клиент. Это уравнение дает вам Y на основе X. Если один из моих шагов неясен, дайте мне знать.

4 голосов
/ 16 июля 2010

Вы просто должны пройти через это:

X - (X * 0.0245) - 1.10 = 100
X - (X * 0.0245) = 100 + 1.10
X (1 - 0.0245) = 101.10
101.10 / x = 1 - 0.0245
101.10 = (1 - 0.0245) * x
101.10 / (1 - 0.0245)  = x
x = 103.639159

Но, как сказал Стивен Сюй, Wolfram Alpha - ваш друг, когда вы хотите решать математические задачи.

2 голосов
/ 16 июля 2010

x - 0,0245x = 101,1

(1 - 0,0245) х = 101,1

x = 101,1 / (1 - 0,0245)

х = 103,639

1 голос
/ 16 июля 2010

Я не уверен, если вы серьезно, но если вы:

X - (X * 0,0245) - 1,10 = 100

-> 101,10 - 0,9755 * x = 0 -> 101,1 / 0,9755 = х -> х = 103,5366

Какой конкретный язык программирования вы хотите использовать? (не то, чтобы это имело большое значение)

Кстати: Отличный ответ Стивен Сюй!

1 голос
/ 16 июля 2010
X - (X * 0.0245) - 1.10 = Y
X - (X * 0.0245) = Y + 1.10
X * (1 - 0.0245) = Y + 1.10
X = (Y + 1.10) / (1 - 0.0245) = (Y + 1.10) / 0.9755
1 голос
/ 16 июля 2010

Вот некоторые видео по математике:

http://www.khanacademy.org

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

0 голосов
/ 16 июля 2010

Возможно, я что-то упустил на протяжении всего обсуждения, но действительно ли мы оцениваем правильное уравнение?

Комиссия составляет 2,45% и € 1,10. Добавление этих сборов к заказу в размере 100 евро будет.

subtotal = €100
grandtotal = subtotal*(1 + 0.0245) + €1.1 = €103.55
           = subtotal + subtotal*0.0245 + €1.1 = €103.55

Это дает уравнение sub*(1 + pct) + flat = tot. Решение для sub:

sub*(1 + pct) + flat = tot
sub*(1 + pct) = tot - flat
sub = (tot - flat) / (1 + pct)

or distributing sub first

sub + sub*pct + flat = tot
sub + sub*pct = tot - flat
sub*(1 + pct) = tot - flat
sub = (tot - flat) / (1 + pct)

В итоге получается то же уравнение sub = (tot - flat) / (1 + pct). Поэтому решение для промежуточного итога дано всего:

grandtotal = €103.55
subtotal = (grandtotal - €1.1) / (1 + 0.0245) = €100

Я что-то пропустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...