Здравствуйте.

Необходимо придумать формулу расчета или создать js-скрипт для web со следующими исходными данными:

Калькулятор-конвертер для переводов/конвертирования электронных денег

Условия расчета:

Параметры "ком_исходной_системы" и "ком_результирующей_системы":

Фиксированная сумма, % от суммы обмена, минимальная сумма при установленном % (мин_сумма), максимальная сумма при установленном % (макс_сумма).

Алгоритм вычисления ком_исходной_системы и ком_результирующей_системы:

Если фиксированная_сумма не равна нулю, от суммы_обмена отнимается (прибавляется при обратном расчете) фиксированная_сумма.

В противном случае вычисляется % от суммы_обмена.

Если мин_сумма не равна нулю и вычесленный % от суммы_обмена меньше мин_суммы, то % от суммы_обмена приравнивается к мин_сумме.

Если макс_сумма не равна нулю и вычесленный % от суммы_обмена больше макс_суммы, то % от суммы_обмена приравнивается к макс_сумме.

наша_комиссия_% - равен установленном % от суммы_обмена

скидка_клиента_% - представляет собой установленный процент от нашей_комиссии_%. 100% скидки_клиента_% равна нашей_комиссии_%.

При скидка_клиента_% не равной нулю наша_комиссия_% вычисляется следующим образом: наша_комиссия_% - ((наша_комиссия_% / 100) * скидка_клиента_%).

Формула расчета при введенной исходной сумме:

(исходная_сумма_в_валюте_исходной_системы - ком_исходной_системы)/ (курс_результирующей_системы / курс_исходной_системы) - (наша_комиссия_% - ((наша_комиссия_% / 100) * скидка_клиента_%)) - ком_результирующей_системы = результирующая_сумма_в_валюте_результирующей_системы

Формула расчета при введенной результирующей сумме:

(результирующая_сумма_в_валюте_результирующей_системы + ком_результирующей_системы) * (курс_исходной_системы / курс_результирующей_системы) + (наша_комиссия_% - ((наша_комиссия_% / 100) * скидка_клиента_%)) + ком_результирующей_системы = исходная_сумма_в_валюте_исходной_системы

ВАЖНО! Опишу ситуацию на простом примере. Возьмем курс доллара к рублю равным 28,1778. Тогда 30 рублей деленае на курс 28,1778 с ограничением (не округлением!!!) до второго знака после запятой равны 1,06. При обратном расчете 1,06 * 28,1778 равно 29,86, но при расчете 29,86 / 28,1778 результирующая сумма будет равняться 1,05. Проблема наглядна и округления (использование floor, ceil, round) не дадут точного результата при ВСЕХ возможных вариантах. Требуется проводить корректировку.

ЗАДАНИЕ: Написать на javascript (учитывая особенности поведения javascript в разных браузерах) калькулятор, по заданной формуле, который обеспечит точные вычисления при ВСЕХ возможных вариациях как исходной, так и результирующей сумм

Задача сделать так, чтобы независимо от того, в какое поле мы вводим сумму ("результирующая_сумма_в_валюте_системы" или "исходная_сумма_в_валюте_системы") был точен как прямой расчет, так и обратный. В этом и основная проблема, т.к. прямой просчет без проблем получается, а "обратный", когда мы вводим сумму в "результирующая_сумма_в_валюте_системы" учитывая количество преобразований /просчетов и ограничений на длину строки с плавающей запятой в JS -- сумма получается незначительно отличающаяся (несколько копеек), приходиться делать корректировки .... И все равно как-то убого получается, так быть не должно...

Могу предоставить ссылку на сайт, где необходимо это сделать при личном общении.

14 лет назад
cashelec
Наталья 
38 лет
14 лет в сервисе
Была
9 лет назад

Заявки фрилансеров

Нет заявок фрилансеров