[Microsoft Excel] Grosse erreur de calcul

Grosse erreur de calcul [Microsoft Excel] - Logiciels - Windows & Software

Marsh Posté le 26-04-2004 à 11:35:53    

Salut,
 
J'aimerais savoir d'autres que moi ont remarqué ce truc qui moi me troue proprement :
 
Ouvrez Excel.
Dans la colonne A, insérez les valeurs 1.9, 2.9, 3.9, etc, mettons jusqu'à 20.9 (utilisez la recopie incrémentée...)
Dans la colonne B, insérez les valeurs 2, 3, 4, 5 etc jusqu'à 21.
(2 en face de 1.9, 3 en face de 2.9, etc. donc)
 
Dans la colonne C insérez la formule =0.1-(B1-A1).
 
Recopiez la formule jusqu'en bas.
 
A partir de la ligne 5, le résultat n'est plus égal à zéro.. o_O
 
J'ai vérifié ce bug sur Excel 2000, 2002, 2003 tous services packs installés, sur des machines équipées en Celeron (génération P3 et P4) et sous Windows XP SP1, toutes updates installées.
 
Quelqu'un sait d'où ça vient...? Si ça peut être corrigé...?
 
Ca me pose un foutu problème au boulot, où ça m'empêche de faire certains tests dans des tableaux importants..
 
D'avance merci,
 
Bonne journée à tous !
 
Fab'


Message édité par Thanatos le 26-04-2004 à 11:36:48
Reply

Marsh Posté le 26-04-2004 à 11:35:53   

Reply

Marsh Posté le 26-04-2004 à 11:39:40    

Ah oué [:wam] en effet
Ca me le fait aussi ici
edit: Excel 2000/Windows 2000/Duron 700
 
Même

=0.1-(21-20.9)


n'est pas égal à 0 :pt1cable:


Message édité par freds45 le 26-04-2004 à 11:40:04

---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 26-04-2004 à 11:44:19    

si tu limite le nombre de décimales le problème est caché ...
as-tu besoin du 15ème chiffres après la virgule où apparait le bug ?

Reply

Marsh Posté le 26-04-2004 à 11:46:08    

ou sinon tu peux aussi développer ta formule et faire 0.1 -B1 + A1
sans les parenthèses ...


Message édité par filou66 le 26-04-2004 à 11:46:52
Reply

Marsh Posté le 26-04-2004 à 11:49:03    

filou66 a écrit :

si tu limite le nombre de décimales le problème est caché ...
as-tu besoin du 15ème chiffres après la virgule où apparait le bug ?


 
ça affiche peut etre 0, mais ce n'est pas 0 [:aloy]
 
edit: sans les parenthèses, ca donne bien 0 :)


Message édité par freds45 le 26-04-2004 à 11:50:50

---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 26-04-2004 à 12:01:01    

Thanatos a écrit :

Salut,
 
J'aimerais savoir d'autres que moi ont remarqué ce truc qui moi me troue proprement :
 
Ouvrez Excel.
Dans la colonne A, insérez les valeurs 1.9, 2.9, 3.9, etc, mettons jusqu'à 20.9 (utilisez la recopie incrémentée...)
Dans la colonne B, insérez les valeurs 2, 3, 4, 5 etc jusqu'à 21.
(2 en face de 1.9, 3 en face de 2.9, etc. donc)
 
Dans la colonne C insérez la formule =0.1-(B1-A1).
 
Recopiez la formule jusqu'en bas.
 
A partir de la ligne 5, le résultat n'est plus égal à zéro.. o_O
 
J'ai vérifié ce bug sur Excel 2000, 2002, 2003 tous services packs installés, sur des machines équipées en Celeron (génération P3 et P4) et sous Windows XP SP1, toutes updates installées.
 
Quelqu'un sait d'où ça vient...? Si ça peut être corrigé...?
 
Ca me pose un foutu problème au boulot, où ça m'empêche de faire certains tests dans des tableaux importants..
 
D'avance merci,
 
Bonne journée à tous !
 
Fab'


 
ouep ... impresionnant !!
même Pb chez moi, Win2k sp3, excel 2k ...
 
c'est les parenthéses qui foutent la merde apparemment !
en foutant la formule dans tous les sens sans parenthéses, il m'affiche bien "0" ... par contre dès qu'il y a dses parenthèses, il n'affiche plus "0" mais un chiffre proche de "0" à 10exp-15 près  :ouch:


---------------
A méditer : Qui s'endort avec le cul qui gratte, se réveille avec le doigt qui pue ...
Reply

Marsh Posté le 26-04-2004 à 12:26:18    

filou66 a écrit :

si tu limite le nombre de décimales le problème est caché ...
as-tu besoin du 15ème chiffres après la virgule où apparait le bug ?


 
Non, j'ai fini par masquer ça à coup de fonction arrondi, justement, en limitant à 4 décimales, puisque l'erreur ne se fait qu'à la quinzième...
 
:)
 
Sinon pour les parenthèses, dans mon cas, pas moyen de les enlever sans complexifier la formule dans une mesure que j'aimerais éviter (priorités des opérations mathématiques plus divers tests effectués... Faudrait que je développe à mort pour éviter les factorisations, quoi).
 
Il n'en reste pas moins que c'est un vrai bug et que personne chez Crosoft ne semble s'en soucier, vu qu'il existe depuis 3 générations d'Excel (et peut-être plus, mais je n'ai plus d'Excel plus ancien sous la main pour tester).
 
Ca m'sidère un tantinet... :)
 
Merci à tous pour vos réponses,
 
@+
 
Fab'

Reply

Marsh Posté le 26-04-2004 à 12:34:56    

Thanatos a écrit :


Il n'en reste pas moins que c'est un vrai bug et que personne chez Crosoft ne semble s'en soucier, vu qu'il existe depuis 3 générations d'Excel (et peut-être plus, mais je n'ai plus d'Excel plus ancien sous la main pour tester).


 
Sont p'tet pas au courant, fait un bug report.

Reply

Marsh Posté le 26-04-2004 à 12:52:39    

El Pollo Diablo a écrit :

Sont p'tet pas au courant, fait un bug report.


 
Oui oui, c'est fait... :)

Reply

Marsh Posté le 26-04-2004 à 13:05:06    

La solution est simple ! Utilisez OOo : Open Office, suite bureautique TRES puissante et complète, qui fera tout ce que Excel vous fait, et de très belle manière. http://www.openoffice.org/

Reply

Marsh Posté le 26-04-2004 à 13:05:06   

Reply

Marsh Posté le 26-04-2004 à 13:25:54    

c'est un problème « connu »
 
un de mes profs nous a dit que les ordinateurs n'aimaient pas les soustractions de nombres proches, j'ai toujours pris ça comme un dogme :D
 
pour des explications, je trouve pas grande chose avec Google, si quelqu'un est + éclairé ...
 

Reply

Marsh Posté le 26-04-2004 à 13:31:30    

Matthieu_phpmv a écrit :

La solution est simple ! Utilisez OOo : Open Office, suite bureautique TRES puissante et complète, qui fera tout ce que Excel vous fait, et de très belle manière. http://www.openoffice.org/


 
En entreprise, c'est pas forcément l'utilisateur qui choisit quel logiciel utiliser :hello:


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 26-04-2004 à 13:32:46    

Trop fort Excel, décidémment je suis content de ne pas (plus) l'utiliser ...

Reply

Marsh Posté le 26-04-2004 à 13:35:56    

on peut forcer l'affichage des nombres dans le format de la cellule mais c'est cacher la merde au chat comme on dit, dès qu'on refait un calcul vers une cellule standard ça affiche des conneries :/ marrant quand même :D

Reply

Marsh Posté le 26-04-2004 à 13:36:27    

[Albator] a écrit :

Trop fort Excel, décidémment je suis content de ne pas (plus) l'utiliser ...

j'ai la même chose avec OOo en forçant le format des cellules au mode scientifique ;)
 
je pense pas que le problème incombe à Excel


Message édité par DDT le 26-04-2004 à 13:36:54
Reply

Marsh Posté le 26-04-2004 à 13:38:18    

DDT a écrit :

j'ai la même chose avec OOo en forçant le format des cellules au mode scientifique ;)
 
je pense pas que le problème incombe à Excel


 
Le bug du pentium is back ? :'(
Je testerai à l'occasion avec OOO sous Linux (ça va troller chérie)

Reply

Marsh Posté le 26-04-2004 à 13:39:44    

quand je parlais d'OOo, c'était sous Linux :)

Reply

Marsh Posté le 26-04-2004 à 13:41:00    

DDT a écrit :

quand je parlais d'OOo, c'était sous Linux :)


 
T'arrête de ruiner mes trolls oui ?  :fou:

Reply

Marsh Posté le 26-04-2004 à 13:49:18    

DDT a écrit :

j'ai la même chose avec OOo en forçant le format des cellules au mode scientifique ;)


 
+1
 
Chelou cette histoire, et ca ne le fait que si le résultat est egal a 0  :heink:

Reply

Marsh Posté le 26-04-2004 à 13:56:49    

Thanatos a écrit :

(...)
Il n'en reste pas moins que c'est un vrai bug et que personne chez Crosoft ne semble s'en soucier, vu qu'il existe depuis 3 générations d'Excel (et peut-être plus, mais je n'ai plus d'Excel plus ancien sous la main pour tester).
(...)


Pour info, même problème sous Excel 97 SR-2 avec P3 et NT4 SP6

Reply

Marsh Posté le 26-04-2004 à 14:12:10    

C'est un problème lié à nos chers processeurs qui calculent faux ;)
 
Pour représenter un nombre à virgule tu disposes d'un nombre limité de bits.
 
En général la représentation du nombre réel est décomposée en un bit de signe, plusieurs bits d'exposant et la mantisse...  
 
Lorsque tu fais des calculs en virgules flottantes le processeur arrondi le résultat à chaque étape, plus tu ré-utilises le résultat d'un précédent calcul plus tu as de chance d'avoir des erreurs sur le résultat final.
 
Augmenter le nombre de bits permet à un processeur d'être plus précis sur les calculs de nombres réels.
 
Pour Excel (ou autre) le truc consiste à effectuer un arrondi sur l'affichage en n'utilisant pas les dernières décimales.

Reply

Marsh Posté le 26-04-2004 à 14:13:33    

Le problème se produit avec tous les logiciels....qui calculent avec des réels doubles, comme excel.
 
Je n'ai plus excel (OOo inside), mais essayez de formater vos cellules en nombre à 2 chiffres après la virgule pour voir ?
 
Je ne sais pas si ça marche hein, mais en tout cas, ce problème était déjà présent en .... 1990, lorsque je travaillais en basica (ça me rajeunit pas :/), Quick Basic, Basic PDS etc etc. Bonjour les formules d'arrondi, parce qu'en compta, les milliardièmes de centimes étaient mal vus :o
 
Peit EDIT pour requin : ça ne se produit pas avec les entiers longs, pas avec les réels simple; Le problème n'est présent qu'avec les réels doubles.


Message édité par Pupoul le 26-04-2004 à 14:15:07
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed