24730 - Função RestoDivisao - Retorno incorreto
Problema:
Exemplo:

Solução: Solução 24730:
Dentro da regra, estamos utilizando a função RestoDivisao
O resto deveria ser = 0, mas ele não apresentando um valor bem maior.
Exemplo:

Solução: Solução 24730:
Este erro é decorrente de uma limitação técnica do Delphi, onde um valor calculado pode ter uma representação binária diferente do valor final.
Isso significa que se informar apenas os valores na função, irá retornar corretamente. Exemplo: RestoDivisao(32760,1365,VNRESTO);
Porém, se gerar o valor multiplicando com outro número como é o exemplo de regra abaixo, o comportamento acaba sendo distinto dentro do Delphi e gerando problema.
Para evitar este problema pode ser utilizado o arredondamento do valor calculado. Segue exemplo do ajuste na regra:
SE (VAUNIMED = MIL)
INICIO
VSNOVQTDMIL = VSNOVQTD;
VSNOVQTD = VSNOVQTD * 1000;
VNQTDMVE = VNQTDMVE * 1000;
ArredondarValor(VSNOVQTD,0); <----
ArredondarValor(VNQTDMVE,0); <----
FIM;