Как arrendondar рассрочку такую же итог?


     $meses = 3;
     $valor = 1000
     $valor_parcela = $valor  / $meses;

                for ($i = 1;$i <= $meses; $i++) {
                      $date_sum_month = date('d/m/Y', strtotime("+{$i} month", strtotime($date)));
                      array_push($boletos, ["numero" => $i, "vencimento" => date_sum_month, "valor" => $valor_parcela]);
                     }
return json_encode($boletos);

Результат моего кода:

1 - 333,333
2 - 333,333
3 - 333,333

Желаемого:

1 - 333
2 - 333
3 - 334
Author: Maniero, 2019-08-17

1 answers

Вам нужно сделать, разница сумма рассрочки arredondas ноль домов и добавить в последний взнос. Итак, вы хотите сделать две вещи, расчета всех рассрочку без десятичных знаков, а затем изменить последний, чтобы убедиться, что сумма из них дайте же значение, что и оригинал. Могли бы сделать, учитывая определенное количество десятичных разрядов, 1, 2 или даже больше, еще больше центов, которые мы используем, просто сказать, сколько домов хотите, чтобы закруглить.

$meses = 3;
$valor = 1000;
$boletos = [];
for ($i = 1; $i <= $meses; $i++) array_push($boletos, round($valor / $meses, 0));
$boletos[$meses - 1] += $valor - array_sum($boletos);
print_r($boletos);

См работает ideone. И repl.it. Также я GitHub для использования в будущем.

 5
Author: Maniero, 2019-08-19 12:13:17