Parcelar venda, arredondar parcelas.

Delphi

15/08/2006

Pessoal, quando estou gerando as parcelas de uma determinada venda estou tendo problema com os centavos.

Eu estou colocando como valor da parcela o valor total da venda dividido pelo numero de parcelas assim:

TFinanca.FieldByName(´VALORPARCELA_FIN´).AsCurrency := QCONSULTA.FieldByName(´TOTALNF_MOV´).AsCurrency / QCONSULTA.fieldbyname(´VEZES_CON´).AsInteger;


Por exemplo:

Eu fiz uma venda de 50,00 e pedi pra dividir em 3 vezes ... ela gera 3 parcelas de 16,67 que dá 50,01.

Dai o valor total da venda não bate com o valor total das parcelas.

Alguem usa alguma rotina para arredondar o valor das parcelas?


Armando.boza

Armando.boza

Curtidas 0

Respostas

Siam

Siam

15/08/2006

var rParcs: array of Double;
procedure Apure_Parcelas(fValor:Double; iNum_Parcs:Integer);
var i:Integer; fTot:Double;
begin
  SetLength(rParcs, iNum_Parcs);
  fTot := 0;
  for i := 0 to High(rParcs) do
  begin
    rParcs[i] := Trunc(fValor * 100 / iNum_Parcs) / 100;
    fTot      := fTot + rParcs[i];
  end;
  rParcs[0] := rParcs[0] + fValor - Ftot;
end;



GOSTEI 0
POSTAR