Arredondamentos...

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Arredondamentos...

Mensagem por alxsts »

Saudações!

Penso que a lenha fui eu quem colocou, em um tópico aparentemente encerrado, de forma tri-legal. Voce apenas jogou gasolina... Certamente o fogaréu resultante deu mais luz à discussão. Honestamente? Vou descansar... Mais tarde voltaremos.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Arredondamentos...

Mensagem por Maligno »

Sygecom escreveu:existe uma normal que regulariza isso que é a Norma ABNT
Essa norma ABNT, nessa área, não faz muita diferença, embora coincida com o método do Clipper e que é, aliás, o mesmo método usado em funções de formatação para apresentação visual da VCL do Delphi/Builder. Mas a função Round() da VCL (sim, o nome é igual) usa o método do "banqueiro".
Em função disso temos que cuidar muito ao utlilizar algo contrario, pricipalmente quando se for em um documento fiscal
Note que em NFs, por exemplo, usando o método que for, sempre poderá haver diferença nos cálculos de produtos que tem valores fracionados. É onde mora o perigo. Numa sequência de cálculos dos ítens pode ocorrer um erro ao utilizarmos o resultado dessa soma no cálculo do ICMS, por exemplo. Eu acerto o cálculo parcial sempre no último ítem da NF. Ele recebe a diferença. Aí sim a soma dos ítens sempre bate com o total da NF. E o imposto sai certo. A dica me foi passada por um fiscal da Receita. Aí sim, concordo, é preciso realmente tomar cuidado. Mas não depende do método de arredondamento. Inclusive, há uma certa tolerância do governo com relação a alguma diferença em função de arredondamentos. A discrepância só não pode ser exagerada, claro. :)

Mas como regra geral, as instituições financeiras sempre utilizam o método do "banqueiro", até porque, eles não podem ter e nem podem causar prejuízo. Daí a importância desse método. Essa norma ABNT não permite tal "equilíbrio". Logo, não há porque considerá-la. Aliás, um detalhe interessante que me passaram: no COBOL, usado pelos bancos há tanto tempo, o método do "banqueiro" é padrão, embora haja um meio de reconfigurar isso no código.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Re: Arredondamentos...

Mensagem por carlos_dornelas »

Pessoal, estudando o assunto em questão (arredondamentos) me deparei também com o SET FIXED e o SET DECIMALS TO. Alguém pode me explanar quando usar isso e para que servem?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Arredondamentos...

Mensagem por Maligno »

Esses dois comandos só tem a ver com apresentação. O comando SET FIXED <ON | OFF>, se ligado, faz com que a apresentação de números tenha tantas casas decimais quanto aquelas definidas através de SET DECIMALS TO. Tem mais alguns detalhes. Mas é melhor ler o NG a respeito.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder