JotaPêAh!

Excel usa definição de limite para efetuar soma

em 20/01/2010 14:47:37
Você alguma já teve a
ligeira impressão que um de seus cálculos no Excel não soma ou subtrai
para o valor que você espera? Se você ainda não passou por esta
situação é improvável que você alguma vez tenha tido a necessidade (ou
curiosidade) de expandir a precisão decimal do Excel. Ou eu poderia até
dizer que você não teve o azar de cair nesta curiosa característica do
Excel.Você seria capaz de subtrair R$1.117,50 de R$1.125,80 e me dizer
qual o resultado? Na matemática mundana que aprendemos na escola, você
certamente dirá R$8,30. Mas e se eu te dissesse que este resultado está
incorreto? Que o resultado desta subtração não é exatamente R$8,30; mas
um outro número qualquer? O que você diria?

Certamente você diria que ou eu sou maluco ou devo voltar para
a escola. Porém, se você efetuar o cálculo acima no Excel você verá que
ele também não retorna a resposta que você acredita ser a correta. E
agora? Será que todos na Microsoft erraram neste detalhe simples ou
existe algo além que ainda não foi explicado?

Antes de entrar nos motivos que provam que o resultado não é exatamente R$8,30 veja a figura abaixo:

Figura 1 – Subtração incorreta ou um fantasma do Excel?

Ao efetuar a subtração o Excel retorna dois valores. O primeiro
é o tal R$8,30 que você certamente encontrou e outro é um número bem
próximo de R$8,3. Porém, próximo de R$8,30 não é a mesma coisa que
R$8,30. Então, qual resposta está realmente correta?

A resposta está no ramo da matemática conhecida como “Cálculo”.
Se você alguma vez estudou Cálculo deve ainda lembrar de “limites”.
Limites são utilizados para avaliar o resultado de um cálculo (limite)
quando um número X se aproxima de um outro número qualquer. Por
exemplo, qual o limite de 10/X quando X se aproxima do infinito,
matematicamente falando:

O que desejamos saber na fórmula acima é qual o valor que resultará da
divisão do número 10 por um número X tão grande quanto o infinito. Se o
número X fosse 10, o resultado seria 1 (10/10=1). Se o número X fosse
1.000.000 o resultado da divisão seria 0,00001. É fácil visualizar que
quanto maior for o valor de X menor será o resultado da divisão. No
limite, podemos dizer, com 100% de certeza, que o resultado será zero.

Como é impossível prever quais os números serão subtraídos ou
somados em uma planilha é muito mais prático utilizar conceitos de
limites para criar uma fórmula que possa efetuar tais cálculos com o
máximo de precisão possível. E é exatamente isso que o Excel faz cada
vez que você efetua um cálculo.

Ao observar o resultado R$8,299999999999950 podemos facilmente
ver o que foi dito acima. No limite, a parte do decimal é realmente
R$0,3. Ao arredondar o número 5, o primeiro 9 à esquerda passa para
zero e o processo continua até que o 2 seja arredondado para 3. Observe
que o resultado será verdadeiro até o décimo – quarto dígito. Se você
formatasse a célula para mostrar até a décima – terceira casa decimal o
resultado seria R$8,30.

Somente ao modificar a visualização para os 15 dígitos de precisão do Excel que é possível ver esta “anomalia”. Veja a figura:

 

Figura 2 – Diferentes precisões resultam em diferentes valores  

Fonte  

Atualização 02/01/2012: Consultar http://support.microsoft.com/kb/78113/pt
 

 


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: