Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

Versão 1 Próxima »

Arredondamento

Abrangência

Versão 5.07

Versão 5.08

Versão 6.09

Versão 7.10

Versão 8.11

Versões Anteriores


No Protheus, pode haver diferença de arredondamento em algumas operações numéricas. Isso ocorre devido a diferenças no armazenamento de variáveis numéricas nos diversos processadores. Diferença esta, inclusive, presente no Advpl, mesmo antes do surgimento do Protheus.

Para evitar esses problemas de arredondamento, utilize a função 'Round', principalmente antes de realizar uma comparação, e antes de utilizar a função 'Int'.  Desse modo, assegura-se que o resultado será correto independentemente do processador / plataforma.

Exemplos:

          1.  If (Valor/30) = 50                 // pode ser falso ou inválido

               If Round(Valor/30, 0) = 50  // correto

          2. M->EE8_QTDEM1:= Int (M->EE8_SLDINI/M->EE8_QE)      // pode ser falso ou inválido

              M->EE8_QTDEM1:= Int (Round(M->EE8_SLDINI/M->EE8_QE, 10))   // correto

 

  • Sem rótulos