10608 - Diferença de 0,01 centavo na contabilização com regra parcial.
Problema: Descrição do Problema: Ao efetuar um determinado tratamento via regra em uma forma de contabilização é gerada uma diferença de 0,01 centavo.
Depurando a regra constatou-se que o campo PerCta da tabela E440RAT possuí o valor 19,40 no banco de dados, porém ao utilizar-se da sintaxe (nValor1 = E440RAT.PerCta;) a variável nValor1 recebe o valor de 19,399999619.
Quando ocorre / onde se aplica: Na integração contábil, quando existe uma regra parcial que busca um campo flutuante.
Solução: Solução:
* Campos de ponto flutuante (Double) sempre terão esse problema, pois nem sempre o valor gravado no banco (19,40) é o representado computacionalmente (19,399999619).
* Na maioria dos casos o valor gravado é o mesmo apresentado computacionalmente, porém existirão casos como o citado acima.
* Sugerimos ao usuário utilizar a função ArredondarValor sempre que for utilizar um campo flutuante.
Esta situação foi discutida com a nossa área de tecnologia onde constatou-se que está correto o comportamento do sistema, usuário deverá utilizar a função ArredondarValor.
Depurando a regra constatou-se que o campo PerCta da tabela E440RAT possuí o valor 19,40 no banco de dados, porém ao utilizar-se da sintaxe (nValor1 = E440RAT.PerCta;) a variável nValor1 recebe o valor de 19,399999619.
Quando ocorre / onde se aplica: Na integração contábil, quando existe uma regra parcial que busca um campo flutuante.
Solução: Solução:
* Campos de ponto flutuante (Double) sempre terão esse problema, pois nem sempre o valor gravado no banco (19,40) é o representado computacionalmente (19,399999619).
* Na maioria dos casos o valor gravado é o mesmo apresentado computacionalmente, porém existirão casos como o citado acima.
* Sugerimos ao usuário utilizar a função ArredondarValor sempre que for utilizar um campo flutuante.
Esta situação foi discutida com a nossa área de tecnologia onde constatou-se que está correto o comportamento do sistema, usuário deverá utilizar a função ArredondarValor.