Para dividir um valor em X vezes nem sempre dá um numero inteiro, sendo assim criei uma fórmula para calcular o valor e cobrar a diferença (a maior ou a menor) na ultima parcela:
Exemplo prático 1:
Total: 4128
Parcelas=7
Valor quebrado antes do programa= 589,7142857142
Depois de rodar o programa teremos:
Parcela 1: 589.71
Parcela 2: 589.71
Parcela 3: 589.71
Parcela 4: 589.71
Parcela 5: 589.71
Parcela 6: 589.71
Parcela 7: 589.74
Ou seja na parcela 7 há 0,03 centavos a mais para fechar o valor quebrado (589,7142857142).
Exemplo prático 2:
Total: 56000
Parcelas= 12
Valor quebrado antes do programa= 4666,66666666666667
Depois de rodar o programa teremos:
Parcela 1: 4666.67
Parcela 2: 4666.67
Parcela 3: 4666.67
Parcela 4: 4666.67
Parcela 5: 4666.67
Parcela 6: 4666.67
Parcela 7: 4666.67
Parcela 8: 4666.67
Parcela 9: 4666.67
Parcela 10: 4666.67
Parcela 11: 4666.67
Parcela 12: 4666.63
Ou seja na parcela 12 há 0,04 centavos a menos para fechar o valor quebrado (4666,66666666666667).
<?php
$total_pagamento="4128.00";
$parcelas="7";
$valor_quebrado=round(($total_pagamento/$parcelas),2);
$valor_quebrado_total=round($total_pagamento-($valor_quebrado*$parcelas),2);
for ($i=1;$i<=$parcelas;$i++) {
if ($i==$parcelas) $valor_quebrado=$valor_quebrado+$valor_quebrado_total;
echo "Parcelamento $i: $valor_quebrado<br/>";
}
?>
Assinar:
Postar comentários (Atom)
Linux bash file returns unexpected token `$'do\r''
open file in vi edit with vi filename.sh command; type in vi :set ff=unix command; save file with :wq It will save the file with unix...
-
Adicionar ♦ 10 dias a partir de hoje echo date('d/m/Y', strtotime("+10 days")); ♦ 10 dias a partir de uma data echo ...
-
JQuery - JavaScript and HTML at same page :: send.html <script> Dropzone.options.myDropzone= { url: "upload.php", ...
Show de bola. Justamente o que estava procurando para implementar no meu sistema com geração de boleto do NFePHP. Bem legal. Parabéns!!!
ResponderExcluirValeu
ResponderExcluirPerfeito!! estou gerando parcelas no financeiro de uma empresa, era isso mesmo. vlwww
ResponderExcluir