sábado, 29 de setembro de 2007

O Excel sabe contar até 65535 ???


850 * 77,1 = 100.000

Hehehe, eu só queria saber como eles conseguiram a proeza de fazer esse cálculo alcançar tamanha marca ....

Será que é alguma conspiração contra o número 2^16 ??

Será que eles estão fazendo as contas ficarem erradas para os executivos do mundo vejam que o Google Docs and Spreadsheets e o OpenOffice fazem contas diferentes do onipresente sistema de quase 20 anos de idade e que quem está errado na verdade são esses novos programas, que acham que 850 * 77,1 = 65535? A verdade está lá fora, os matemáticos que o digam !! O produto de 850 por 77,1 é 65535, mas o Excel 2007 diz que é 100000.

Esse bug foi relatado há alguns dias pelo usuário Molham Serry, no grupo de discussão microsoft.public.excel, da Usenet. Outros membros do grupo de notícias rapidamente se envolveram na discussão, postando mais de 120 mensagens. Alguns defenderam que 100.000 de fato era a resposta certa. Depois, outros participantes do grupo começaram a fazer testes e a descobrir coisas intrigantes. Quando se soma 1 ao resultado da conta, por exemplo, a resposta dada pelo Excel é 100001. No entanto, ao subtrair 1 do mesmo número, obtém-se 65534, que é o valor correto.

Um dos participantes do grupo avisou à Microsoft, que publicou ontem uma resposta sobre o assunto. David Gainer, do grupo que desenvolve o Excel, diz que sua equipe fez uma rápida análise do problema e chegou a algumas conclusões. A falha acontece com apenas 12 números reais em torno de 65535. Seis deles ficam entre 65534,99999999995 e 65535. Os outros seis estão entre 65535,99999999995 e 65536.

Não é possível digitar diretamente esses números no Excel. Se alguém tentar, eles serão arredondados para o valor mais próximo com 15 dígitos. No entanto, eles podem aparecer como resultado de cálculos. Nesse caso, os números são armazenados corretamente, mas são exibidos de forma errônea.

Com essa explicação, fica claro por que, ao subtrair 1 do resultado errado, obtém-se o valor correto, 65534. O que acontece é que 65534 fica fora da faixa de erro. Já quando se soma 1, o resultado é 65536, um dos números que são exibidos erradamente. Por isso, o Excel mostra o valor incorreto 100001.

A falha afeta apenas o Excel 2007 - as versões anteriores dão a resposta correta. Segundo Gainer, a falha não é nos cálculos, mas sim no código que acessa os valores e formatos para exibi-los na planilha. Gainer diz também que o problema deve ter surgido quando foram feitas mudanças na lógica de cálculo do Excel, durante o desenvolvimento da versão 2007. Ele acrescenta que sua equipe está trabalhando numa correção para a falha. Assim que estiver pronta e devidamente testada, será oferecida para download. Resta esperar que isso aconteça logo. Não é nada agradável descobrir que sua planilha se dá mal nos cálculos.