Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recopie incrémentée non précise

Togaf

XLDnaute Nouveau
Bonjour,
Quand j'effectue une recopie incrémentée de -5 à +5 avec un pas de 0.05 avec x décimales, la recopie me donne des nombres différents de ceux prévus, occasionnant des erreurs dans les calculs les prenant en compte.
Ci_joint un fichier montrant le problème. Quelle explication: Bug ou ?
Merci pour votre explication.
 

Pièces jointes

  • recopie.xlsx
    12.8 KB · Affichages: 61

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Recopie incrémentée non précise

Bonjour Togaf, Victor21,

Victor21 a fourni une solution.

Je suis amené à penser que c'est dû à la représentation interne des nombres décimaux en binaire.

Par exemple: Si on part du chifre -5 et qu'on y ajoute 0,25, puis si on fait la recopie incrémentée à partir des valeurs -5 et -4,75, alors on trouve bien des valeurs exactes à un ou deux chiffres après la virgule. Or 0,25 est une puissance de 1/2 [ = 1/4 = (1/2)^2 ].

La conversion de la partie décimale (nombre fini d'entiers après la virgule) d'un nombre en base 10 vers la base 2 donne le plus souvent une valeur approchée. L'erreur est donc propagée à chaque opération d'incrémentation.

Quand bien même la partie décimale serait une somme finie de puissance de 1/2, si le nombre de puissances utilisé pour la conversion en base 2 dépasse la capacité machine de représentation d'un nombre en binaire, on aurait aussi une valeur approchée.

Du moins, c'est ce qu'en déduis (mais c'est peut-être faux...)

NB: Modeste geedee a fourni la bonne explication pourt le système IEEE 754.
 
Dernière édition:

Togaf

XLDnaute Nouveau
Re : Recopie incrémentée non précise

merci à Victor21, mapomme,Modeste geedee pour vos réponses rapides qui éclairent ma lanterne. J'en étais resté à une vision simpliste de la recopie. Merci aussi au forum.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…