Desculpa eduardo.. e que n escrevi no compilador ai confundi as funcoes
RoundTo soh trabalha informando o numero de casas decimais e nao como o
FloatToStrF(); erro meu, ficando assim:

RoundTo(Valor,-2); //soh arruma na funcao trocando todos 13,2 por -2 ok

Informacao:
-2 quer dizer que arredondará para duas casas decimais apos a virgula

se for 0 irá arredondar para numero inteiro

se for positivo ira arrendodar 'y' casas antes da virgula substituindo por 0
ex:

RoundTo(1234,2); = 1200

2009/12/4 Eduardo Melo <edume...@gmail.com>

>
>
> Leandro estou testando sua função, mas esta apresentando erro em
> NParcela,13,2, dizendo expect but ',' found, segue abaixo como estou
> fazendo
> para teste:
>
> procedure TForm1.Button1Click(Sender: TObject);
> var
> NParcela, i : Integer;
> ValorTotal : Currency;
> Parc: array of integer;
> begin
> NParcela := 3;
> ValorTotal:= 1000;
> For i := 1 to NParcela do
> Begin
> If i = NParcela Then
> Parc[i] := ValorTotal - RoundTo(ValorTotal / (NParcela,13,2) *
> (NParcela - 1))
>
> Else
> Parc[i] = RoundTo(ValorTotal / NParcela,13,2);
> End;
> end;
>
> 2009/11/25 Leandro <mutu...@yahoo.com.br <mutukao%40yahoo.com.br>>
>
> > faça o seguinte:
> >
> > For i := 1 to NParcela do
> > Begin
> > If i = NParcela Then
> > Parc[i] := ValorTotal - RoundTo(ValorTotal / NParcela,13,2) *
> > (NParcela - 1)
> > Else
> > Parc[i] = RoundTo(ValorTotal / NParcela,13,2);
> > End;
> >
> > 2009/11/25 Tico <doutort...@gmail.com <doutortico%40gmail.com>>
> >
> > >
> > >
> > > Boa tarde senhores,
> > >
> > > Estou tendo um problema com arredondamento no meu sistema. É o
> seguinte:
> > >
> > > Se o valor da minha nota é de R$ 1477,00, e preciso dividir em 3
> parcelas
> > > eu
> > > antes deixava simplesmente 3 parcelas de R$ 492,33.
> > > O problema é que agora, com a NF-e, os clientes estão exigindo que a
> soma
> > > das parcelas sejam exatamente o valor da nota (o que é lógico), já que
> na
> > > forma antiga totalizava R$ 1476,99.
> > >
> > > Montei uma rotina que, durante um loop na minha tabela temporária de
> > > duplicatas faço o seguinte:
> > >
> > > // Somente a primeira parcela leva o valor do ICMS-ST
> > > // A primeira parcela é arredondada e divide-se o restante nas
> > > demais
> > > nParcela := ((nValTotNota - nTotValICMSST) / iQtdParc) +
> > > nTotValICMSST;
> > > if (DM.TabFaturas.RecordCount > 1) then begin
> > > if (DM.TabFaturas.Bof) then begin
> > > nDiferenca := Round(nParcela);
> > > nDupl1 := nDiferenca;
> > > end else
> > > nDupl1 := (nValTotNota - nDiferenca) / (iQtdParc - 1);
> > > end else
> > > nDupl1 := (nValTotNota - nTotValICMSST - nDiferenca) / (iQtdParc)
> > > + nTotValICMSST;
> > >
> > > Neste caso, a nota de R$ 1477,00 ficaria 1 parcela de R$ 492,00 e 2
> > > parcelas
> > > de R$ 492,50.
> > >
> > > Mas me apareceu um outro caso onde o valor da nota é R$ 5670,00 e
> preciso
> > > dividir em 4x.
> > > Fica 1 parcela de R$ 1418,00 e as outras 3 de R$ 1417,33 o que me leva
> > > novamente ao primeiro caso.
> > >
> > > Alguém já teve algum problema parecido? Obigado pessoal.
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> >
> > --
> > Leandro, MuTukA
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > --
> > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> >
> >
> >
> >
>
> --
> Atenciosamente
>
> Eduardo Melo
> 4º Sistemas de Informação - Bacharelado
> www.meloshospedagem.com.br
> Porque Deus amou o mundo de tal maneira que deu o seu Filho unigênito, para
> que todo aquele que nele crê não pereça, mas tenha a vida eterna. (João
> 3:16)
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Leandro, MuTukA


[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    delphi-br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a