Cálculo de Juros com PHP

Abaixo estão duas funções para calcular o valor de parcelas de Juros Simples e Juros Composto:

  1. function jurosSimples($valor, $taxa, $parcelas) {
  2.         $taxa = $taxa / 100;
  3.  
  4.         $m = $valor * (1 + $taxa * $parcelas);
  5.         $valParcela = number_format($m / $parcelas, 2, ",", ".");
  6.  
  7.         return $valParcela;
  8. }
  9.  
  10. function jurosComposto($valor, $taxa, $parcelas) {
  11.         $taxa = $taxa / 100;
  12.  
  13.         $valParcela = $valor * pow((1 + $taxa), $parcelas);
  14.         $valParcela = number_format($valParcela / $parcelas, 2, ",", ".");
  15.  
  16.         return $valParcela;
  17. }

Como usar:

  1. $valorParcelaSimples = jurosSimples(3556.00, 1.20, 6);
  2. $valorParcelaComposto = jurosComposto(3556.00, 1.20, 6);
  3.  
  4. $valorParcelaSimples -> 635,34
  5. $valorParcelaComposto -> 636,64

OBS: Os valores são passados no tipo double. Ex: 3.556,00 = 3556.00

Comments

15 Responses to “Cálculo de Juros com PHP”

  1. Tihh on abril 14th, 2009 8:09

    Show de bola!
    Muito útil teus scripts! ^^
    Abraços 😉

  2. July on abril 15th, 2009 12:09

    como faço p/ colocar os valores através de um combo no site?

    Obrigada.

  3. Cesar Bagatoli on abril 15th, 2009 19:17

    Olá July, os combos você fará no HTML normalmente com os valores que você deseja, como no exemplo abaixo:

    <html>

    <select name=”juros”>
    <option value=”4″>4%</option>
    <option value=”4.5″>4,5%</option>

    </html>

    E depois disso é no arquivo PHP que receberá os parâmetros do formulário que você utilizará os devidos valores nas funções. Não sei se era essa sua dúvida, porém se não for me mande um email que eu a ajudarei melhor. Obrigado

  4. Marcelo on novembro 16th, 2009 14:20

    voce teria um script para calculo de financiamento. tipo revenda de carros

  5. Cesar Bagatoli on novembro 16th, 2009 15:35

    Não tenho amigo, mas é facilmente encontrado na internet. Obrigado.

  6. Rosinaldo on outubro 18th, 2012 21:36

    Olá amigo tudo sua função é interessante agora sou iniciante em php como aplico esta função. grato no aguardo…

  7. Ricardo on julho 25th, 2013 23:03

    Qual a lógica na linha de comando abaixo?
    $taxa = $taxa / 100;
    taxa é o mesmo que juros ao mês (2%a.m.)ficaria assim:
    2% = 2% /100;

  8. Cesar Bagatoli on julho 26th, 2013 7:53

    Olá Ricardo, esta divisão é feita para poder informar à função a taxa de juros como conhecemos, por exemplo 15% vc só informa 15, e dentro do script é feita a conversão para 0.15 que é necessário para o calculo. Obrigado

  9. Francisco on julho 7th, 2014 17:52

    Muito útil. Brigadão

  10. Vaime on dezembro 19th, 2016 11:10

    Na sua conta você pegou o valor final do juros composto e dividiu pelo numero de parcelas certo?
    Para encontrar o valor da parcela fixo da tabela Price de empréstimos pode usar a seguinte equação:
    $coeficiente=(pow((1 + $taxa), $parcelas)-1)/($taxa*pow((1 + $taxa), $parcelas));
    $valParcela = number_format($valor/$coeficiente, 2, “,”, “.”);

    Valeu pelo post!

  11. Cesar Bagatoli on dezembro 19th, 2016 16:16

    Obrigado pela dica!

  12. Rafael Duarte on julho 2nd, 2017 20:02

    Cesar Bagatoli, muito obrigado por compartilhar seu código, me deu uma luz muito boa!
    Obrigado por se dispor!

    Fiz uma melhoria com uma fórmula de JUROS COMPOSTO DIÁRIO que vi na NET
    Espero que ajude outros.

    //função que quebra as datas em segundos
    function geraTimestamp($data) {
    $partes = explode(‘/’, $data);
    return mktime(0, 0, 0, $partes[1], $partes[0], $partes[2]);
    }

    // *** CÓDIGO PARA RETONAR A QUANTIDADE DE DIAS ENTRE PERÍODOS
    function jurosComposto($valor, $taxa, $dataInicio, $dataFim) {

    // Define os valores a serem usados
    $data_inicial = $dataInicio;
    $data_final = $dataFim;
    // Usa a função criada e pega o timestamp das duas datas:
    $time_inicial = geraTimestamp($data_inicial);
    $time_final = geraTimestamp($data_final);
    // Calcula a diferença de segundos entre as duas datas:
    $diferenca = $time_final – $time_inicial; // valo em segundos
    // Calcula a diferença de dias
    $dias = (int)floor( $diferenca / (60 * 60 * 24)); // valor em dias

    //Juros composto diário com uma taxa de % ao dia
    $baseCalculoJuros = “Observações sobre os juros:
    Fórmula dos juros compostos: Juros = ((1 + taxa / 100) ^ períodos) – 1”;
    $periodo = $dias;
    $taxaCalculo = (pow((1+$taxa/100),$periodo))-1;
    $juros = $valor*$taxaCalculo;
    return $valParcela=$juros;
    }
    //*** fim cálculo dos juros composto da mensalidade ****//

  13. Cesar Bagatoli on julho 3rd, 2017 16:42

    Obrigado por contribuir. 🙂

  14. William on fevereiro 11th, 2018 13:08

    Muito Obrigado me ajudou Muito

  15. Tatiane Gonzaga on janeiro 16th, 2019 8:08

    Olá

    No meu caso não estava retornando o valor correto, fiz a adaptação:

    function calculaParcela($total, $taxa = 0, $parcelas = 1, $debug = “”) {
    $i = $taxa / 100.00;
    $n = $parcelas;
    $coeficiente = pow((1 + $i), $n);
    $montante = $total * $coeficiente;
    $valor_parcela = $montante / $parcelas;

    //Exibe na tela a aplicação da formula
    if ($debug == “S”) {
    echo “Valor: $total | taxa: $taxa | parcelas = $parcelas”;
    echo “S = P(1+i)^nonde S = montante, P = principal, i = taxa de juros e n = número de períodos que o principal P (capital inicial) foi aplicado.”;
    echo number_format($montante,2,’,’,’.’).” = $total (1+$coeficiente)^$n”;
    echo “Valor da parcela =”. number_format($montante,2,’,’,’.’).” / $parcelas = “.number_format($valor_parcela,2,’,’,’.’).”“;
    }

    return $valor_parcela;
    }

    calculaParcela(500, 2.99, 6,”S”);

    Resultado:

    Valor: 500 | taxa: 2.99 | parcelas = 6
    ———————————————————————————————————————————————
    S = P(1+i)^n
    onde S = montante, P = principal, i = taxa de juros e n = número de períodos que o principal P (capital inicial) foi aplicado.
    ———————————————————————————————————————————————
    596,68 = 500 (1+1.1933569008889)^6
    ———————————————————————————————————————————————
    Valor da parcela =596,68 / 6 = 99,45
    ———————————————————————————————————————————————

Leave a Reply