Excel 2007 : 1=34466 !

Les Maths ? Peuh, c’est dépassé… on parle business, là !

mardi 25 septembre 2007, 17h42

J’aimerais vous faire part d’un petit exercice mathématique :

Hypothèses :
x-1 = 65 536
2x = 131 070
x+1 = 100 001

Raisonnement :
(x-1) + (x+1) = 65 536 + 100 001
2x = 165 537
131 070 = 165 537
1 = 34 466

Normalement, toute personne disposant d’un simple niveau de mathématiques de début de collège doit me répondre que le raisonnement est juste mais basé sur des hypothèses contradictoires.

Eh bien figurez-vous que de l’autre côté de l’Atlantique, il y a plusieurs dizaines (centaines ?) de d’ingénieurs, de concepteurs et de programmeurs qui vous soutiendront que non, ces hypothèses ne sont pas contradictoires. Et d’afficher clairement leurs idées dans le produit sur lequel ils travaillent, j’ai nommé Excel 2007, le tableur de la suite bureautique du même millésime :

Le bug d'Excel 2007

Comme vous pouvez le constater, selon Office 2007, 850 x 77,1 = 100 000 au lieu de 65 535. Les hypothèses annoncées au début de l’exercices sont en réalité des équations déclarées valides par le logiciel. D’où des résultats vrais ou faux selon l’opération effectuée.

Et il n’y a pas que cette opération précise qui engendre l’erreur : en réalité, toute multiplication de deux nombres dont l’un d’eux contient une virgule et dont le résultat normal est 65 535 permet de reproduire le problème.

Il semblerait bien qu’un bug de conversion entre format binaire et décimal ait trouvé une place bien au chaud parmi les millions de lignes de code d’Excel 2007, les précédentes n’étant pas concernées. Ce n’est pas pour accabler Microsoft, mais une telle erreur de calcul – qui représente tout de même une infinité de combinaisons – est qualifiable de gravissime.

Commise dans un logiciel d’auto-pilotage d’un avion, elle engendrerait des pénalités gigantesques. Mais comme toujours, dans le grand public, elle se contentera de faire sourire et de hâter la publication d’un énième patch à installer par des utilisateurs résignés.

Un commentaire pour “Excel 2007 : 1=34466 !”

  1. Tomers dit :

    C’est toujours couillon ce genre d’erreur.
    Bon, j’espere pour eux qu’ils la trouveront rapidement cette erreur.
    J’espere aussi que cela n’aura pas été trop prejudiciable (quoique bien, si c’est une question d’argent, pour être beneficiaire de 100000 au lieu de 65365 :) )