Вернуть число к его исходному значению в PHP - PullRequest
0 голосов
/ 27 мая 2020

У меня проблема с возвратом исходной суммы клиента.

Клиент может погасить свой баланс в течение 3 месяцев.

Итак, если баланс равен 1,100.00

1,100,00 / 3 = 366,666666667 с округлением до 366,67

Но затем он решил отменить амортизацию.

Я делаю амортизированную сумму * 3, которая составляет: 366,67 * 3 = 1,100,01

Ожидаемый результат должен быть 1,100,00

Спасибо!

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Ваша проблема заключается в исходном расчете: если у вас есть 1,100.00 для оплаты и просто разделите на 3 с округлением, ваш клиент фактически заплатит 1,100.01!

Обычное решение - компенсировать эту разницу в последней (или первой) сумме оплаты:

  • n-1 первые платежи: total / n -> для вашего примера: 2 раза 366.67
  • последний платеж: total - sum of precedent payments -> для вашего примера: 1,100.00 - (2 * 366.67) итак, 366.66 для оплаты

Таким образом, общая выплаченная сумма всегда будет правильной, независимо от того, что вы применяете напольное покрытие или округление, и вы можете отменить в любое время, сложение каждого значения.

0 голосов
/ 27 мая 2020

Сохраните исходное значение 1,100.00 где-нибудь (база данных, переменная и т. Д. c.), И когда они отменит амортизацию, установите отображение из сохраненного значения вместо его вычисления.

...