USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Datas/Números/Strings)

Título da Dica:  Contas corretas com ponto fluante
Postada em 8/10/2000 por Webmaster      Clique aqui para enviar email para o autor  webmaster@vbweb.com.br
Alguém já notou que o Visual Basic não é muito bom em matemática? Tente fazer 18.51 + (-17.59) e você irá receber .9200000000000002.

Isso ocorre, porque no Visual Basic, os valores com ponto flutuante são armazenados no formato padrão IEEE. A representação da máquina sobre valores numéricos é em binário. Qualquer valor inteiro pode ser representado "EXATAMENTE" na forma binária, mas nos casos de valores com ponto flutuante, isso não acontece.

Por exemplo, o decimal 0.0001 não pode ser representado exatamente em binário (0.0001 é uma fração repetitiva com um período de 104 bits!). Então, os valores com ponto flutuante são aproximados para o próximo valor que pode ser representado em binário. Logo, eles tendem a causar algum erro nos calculos quando são utilizados. No nosso exemplo, ambos 18.51 e 17.59 não podem ser representados exatamente pelo padrão de ponto flutuante. A soma deles incluirá um pequeno erro. Observe que o erro é bastante pequeno e essencialmente a soma (quando vista em uma precisão de 14/15 pontos decimais usando a função Format$) é correta.

Para exibir o resultado exato para o usuário, faça o seguinte:

Format$(18.51 + (-17.59), "###.#####")
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página