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