Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!3.eu.feeder.erje.net!feeder.erje.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: pehache Newsgroups: fr.comp.sys.mac.programmation Subject: =?UTF-8?Q?Re=3a_Y_a_comme_un_d=c3=a9faut?= Date: Sat, 4 Dec 2021 17:39:07 +0100 Lines: 97 Message-ID: References: <1pjmz6k.1v0nod6mfq0rkN%josephb@nowhere.invalid> <1pjnmh9.11fmmgjvnnxyuN%josephb@nowhere.invalid> <1pjo2wu.1hc52gb1l7s1a3N%josephb@nowhere.invalid> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net ipO9/47JVRpu4JgsbUFtAAomrH6WTcinU5OddIsDErAl1yumqB Cancel-Lock: sha1:TzBS3N/A0+ltnUcsyuItH+izuls= User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 In-Reply-To: <1pjo2wu.1hc52gb1l7s1a3N%josephb@nowhere.invalid> Content-Language: fr Bytes: 5586 Le 04/12/2021 à 15:25, Joseph-B a écrit : > pehache wrote: > >> Le truc classique c'est (1+1e-16)-1 dont le résultat est zéro >> exactement, parce que la représentation d'un flottant 64 bits ne peut >> pas différencier (1+1e-16) de 1 > > Je me moque éperdument que les limites du calcul en virgule flottante à > e-14 ou e-16 les confondent à zéro, Si tu n'essayes pas de comprendre ça, la discussion ne peut en effet pas aller bien loin. > ce que vous n'avez pas l'air de > comprendre c'est qu'il n'est pas admissible de la part d'ingénieurs de > laisser faire en sorte que leur bijou d'intelligence et de science ne > soit pas cohérent avec la réalité triviale. Les bijoux en question sont tout à fait cohérents avec la "réalité triviale" à condition d'être utilisés avec discernement. En l'occurrence ce que tu considères comme étant ta "réalité triviale" est plus du ressort des calculs sur des nombres entiers ou en virgule fixe qu'en virgule flottante. A chaque problème le bon outil, on peut arriver à planter un clou avec un tournevis mais ce n'est pas top. Je te signale qu'à ma connaissance tout ce qui est informatique financière/comptable n'utilise pas les calculs en virgule flottante mais en virgule fixe, justement pour ne pas tomber dans les problèmes d'arrondis inhérents à la représentation en virgule flottante. Certains langage ont des types en virgule fixe (typiquement le COBOL), et certains systèmes informatiques avaient même le support de la virgule fixe en hardware. > > Pour reprendre l'exemple de MV, > (2.001 -2) avec une calculette à moins d'un euro retournera 0,001 > Ouais, mais c'est moche et trivial tandis que > (2.001 -2) dans AppleScript retournera 9.9999999999989E-4 Historiquement, les calculettes basiques travaillaient en virgule fixe, justement. En virgule fixe, 2.001 ou 2.54 ont une représentation exacte. Après, même quand un système/langage travaille en virgule flottante il ne faut pas confondre ce qu'il affiche et ce qu'il représente en interne. Par exemple dans Octave (Matlab-like) : >> (2.001-2) ans = 1.0000e-03 >> (2.001-2)*1e18 ans = 1.0000e+15 >> int64((2.001-2)*1e18) ans = 999999999999890 Il peut y avoir une mise en forme du résultat pour que ceux qui seraient choqués par le résultat informatique ne crient pas au scandale :) > et ça c'est dû à une science tellement supérieure qu'elle devrait clore > le bec des ignorants même si c'est en contradiction avec l'enseignement > de l'arithmétique élémentaire. Le truc c'est *jamais* personne n'a prétendu que l'arithmétique en virgule flottante était de l'arithmétique exacte. Dans l'enseignement du calcul numérique sur ordinateur c'est une des premières choses qu'on apprend (ou qu'on devrait apprendre) : en virgule flottante on fait des calculs FAUX. Tout l'enjeu est alors de maîtriser les pertes de précision au cours des calcul (car les erreurs d'arrondis ont la désagréable propriété de se cumuler et même parfois d'exploser), et de savoir écrire du code de façon à les minimiser. > Mac, PC, Supercalculateur ou calculette à 2 balles, ne sont que des put… > d'outils./ > Il n'est pas acceptable que ce soit à l'utilisateur lambda dans le cadre > de son utilisation basique (2.001 -2 sur un Mac) de ne s'en prendre qu'à > lui même parce qu'il a eu l'impudence de soumettre un calcul dont le > résultat affiché (pour "légitime" qu'il soit) est en contradiction avec > ce que ces pauvres ignorantins de maîtres d'école ont passé des vies à > enseigner. "A chaque problème le bon outil". Si tu plante ton clou avec un tournevis ce n'est pas au fabricant du tournevis qu'il faut t'en prendre si ça ne va pas. > > D'après toi et OM ce serait au clampin utilisateur d'établir des > procédures de tests de validité des librairies mathématiques que les > ingénieurs d'Apple n'ont pas prix la peine de faire ? Non mais déconner tu penses vraiment que les ingénieurs d'Apple sont idiots à ce point ? -- "...[la moto] un engin qui par les lois de la physique ne peut pas freiner en courbe.", SLD sur fr.rec.bricolage "...sois ouvert aux idées des autres pour peu qu'elles aillent dans le même sens que les tiennes.", ST sur fr.bio.medecine