Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sérgio H. Martins

[Resolvido] Calcular Juros

Recommended Posts

Ola pessoal, estou eu aqui novamente, estou tentando criar um sisteminha de cálculo de juros para empresa onde eu trabalho, por exemplo o cliente atraza e temos que calcular os juros com valor a ser pago. Tenho isso em excel mas não estou conseguindo passar para o delphi. segue a formula do excel:

 

=VF(E3;G3/30;;-F3)

 

 

estou tentando no delphi com o seguinte código que consegui na net:

 

Function Pot( base, expoente: real ):real; // Potenciação

begin

{ utiliza a função de exponencial e de logaritmo }

Result:= Exp((expoente * Ln( base )));

end;

 

 

CODE
procedure Tfrmjuros.BitBtn2Click(Sender: TObject);

var

i: Real; // taxa de juros

valor: Real; // valor base para calculo do valor futuro.

pz: Integer; // prazo em dias

Result:real;

begin

i := 5;//100;

valor:=strtofloat(edit9.text);

pz :=strtoint(edit10.text);

Result:= valor*( Pot( (1+i), (pz/30)) ); //Resultado 1.050,00

edit8.text:=floattostr(result);

end;

//no excel a Pot é substituída pelo sinal ^ Ex. =E18*((1+C19)^(C20/30))

 

 

Mas esse código não esta fazendo o calculo que preciso.

 

Eu possuo na hora do calculo:

 

valor original

data vencimento

data pagamento (diferença desta datas é colocada no edit n° de dias)

N° de dias

taxa: por exemplo 3% a.m

Juntando tudo isso tenho o valor a ser cobrado do cliente, mas não consigo fazer este calculo no delphi.

 

Se poderem me dar umas dicas eu agradeço.,

 

Obrigado

 

Um abraço a todos

Sergio Martins

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daria pra fazer alguma coisa assim:

 

function TForm1.Montante(Capital, Taxa, Tempo: Double): Double;
begin
  Montante:= Capital * (1 + (Taxa /100) * Tempo);
end;

Invocando a função ...

procedure TForm1.Button1Click(Sender: TObject);
var
  C, I, N: Double;
  Vcto, Pgto: TDate;
begin
  Vcto:= StrToDate(txtVcto.Text);
  Pgto:= StrToDate(txtPgto.Text);
  N:= Trunc(Pgto - Vcto) / 30;
  txtTempo.Text:= FloatToStr(N);

  C:= StrToFloat(txtCapital.Text);
  I:= StrToFloat(txtTaxa.Text);


  txtMontante.Text:= FloatToStr(Montante(C, I, N));
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.