Bug do Excel 2007 Duplamente Explicado

06 11 2007

A algum tempo atrás correu pela net uma notícia sobre um bug no Excel 2007 que fazia com que uma célula que tivesse a operação 850*77,1 mostrasse 100000 em vez de 65535, que é o que todas as outras calculadoras do mundo te mostrariam (bom talvez não todas).

Broken Time

Se você procurar no Google ainda vai achar gente o chamando de "Bug Crítico", "Erro de Multiplicação", "Erro Grave", "fim do mundo", "todos as planilhas do mundo estão erradas", "depositaram 100000 na minha conta em vez de 65535" (ta, essa última foi forçada). Até o Digg chamou de Critical Excel 2007 bug cripples users.

Quem programa deve ter pensado, como eu: "bah... não é possível que seja tão problemático assim". Por que multiplicação é uma coisa muito básica no programa para dar errado em uma circunstancia tão única... se a rotina de multiplicação da Microsoft (assumindo que não é o seu processador que faz isso diretamente) estivesse errada, nenhum número apareceria certo no Excel.

Para encerrar o assunto, ficou provado que realmente não era tão crítico assim. Como os geeks de plantão podem ler nesse extenso e passo a passo desmanche do Excel para achar o bug feito pelo Chris Lomont, que eu achei nas feeds do Joel on Software é um problema de formatação do número. O que acontece é que o Excel não usa funções prontas de formatação (tipo sprintf, para os chegados), e sim tem sua própria rotina otimizada (direto no assembly ao que parece). Em um determinado momento, um bit a mais, um carry a menos, e você cai em um de dois pedaços ultra-específicos da rotina que estão errados.

Já a um tempo atrás o próprio Joel tinha dado uma boa explicação para o motivo do bug, que não afeta o número guardado propriamente dito, só a exibição do mesmo. Isso quer dizer que você não precisa revisar aquela planilha gigante, por que fórmulas que usam esta célula "bugada" não usam o número 100000 e sim o correto 65535.

Anyway.... Cagada Microsoft (justo na melhor versão do office até agora?!)

(ps: procurar por "dog shit" no flickr é interessante, veja o que eu achei:

American Foreign Policy Poop Patrol - déjections électorales - - déjections électorales - - déjections électorales -

)

Defined tags for this entry: , , , , , ,


Page delivered in 0.221622 seconds, 89 files included