didier Posté(e) le 25 novembre 2003 Posté(e) le 25 novembre 2003 Bonjour aux maniaques du clavier (pas comme Bach)Ce qui m'amène aujourd'hui sur le forumne concerne pas AutoCad, ou plutôt pas que AutoCad,voilà, en programmant je suis tombé sur une erreur de calcul qui semble être dueau processeur.Essayez de faire cette opération 65432.21 moins 65422.32le résultat vous semble juste ?si vous êtes sur Excel par exemple, formattez le résultat à 12 décimales(non pas douze des six mâles madame !)et qu'observez vous ????? :casstet: :casstet:remarque en VBA idem, en AutoLisp dito, en VB identique! étonnant non ?c'est avec plaisir que je lirais les commentaires(non pas comment taire pépé !)amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
bonuscad Posté(e) le 25 novembre 2003 Posté(e) le 25 novembre 2003 Pas de commentaire ;) Juste une constatation:en lisp(rtos (- (float 8191.89) (float 8182)) 2 12) puis (rtos (- (float 8191.90) (float 8182.01)) 2 12) 8182 est une limite en nombre réel ?!?! :casstet: La question est posée Bonuscad Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Labletech Posté(e) le 26 novembre 2003 Posté(e) le 26 novembre 2003 Au risque de paraître un peu niais j'avoue que je n'ai pas très bien compris le profond de vos pensées respectives !!!Je croyais mais bon, je me trompe certainement, que le maximum de précision adimissible pour Autocad était de 10 décimales.Dans ce cas si on le fait souffrir à 12 décimales il est peut-être un peu logique d'avoir des surprises quant-à la validité de certaines approximations . Il ne faut pas oublier que les opérations mathématiques en informatique ne sont que des itérations de calculs élémentaires (+,-,*,/) développées de façon limitée (dans le cadre de l'environnement microsoft peut-être justement à 10 décimales dans un 1er temps) Inversement si je prend la même formule que précédemment avec 10 et non 12 (rtos (- (float 8191.89) (float 8182)) 2 10) (rtos (- (float 8191.90) (float 8182.01)) 2 10) J'obtiend par contre le même résultat.Je repette je n'ai peut-être pas compris le problème, mais je crois qu'il n'y en a pas tout simplement !! Dire que l'année dernière en Judo je pesais officiellement 89 kg et que j'aurais pu expliquer à l'arbitre que ce n'était qu'une vision de l'esprit et qu'à partir de cela j'aurais pu peser 88 Kg , j'en reste baba !!. ;) Formateur ATC Autocad - Mechanical - Inventor - Electrical
didier Posté(e) le 26 novembre 2003 Auteur Posté(e) le 26 novembre 2003 Helloen l'occurence, c'est moi qui était niais de penser qu'un processeur ne faisait pas d'erreurs de calcul sur des opérations élémentaires.bien sûr, il est toujours possible de forcer le nombre de décimales significatives, er je suis entièrement de l'avis de ceux qui disent que cette précision est superflue, mais en programmant, lorsque tu fais une comparaison de résultat pour arrêter une boucle, tu vois la machine tourner jusqu'à la Saint BillGate, et c'est pas demain.en attendant méfions nous... et vérifionsamicalement :P Éternel débutant... Mon site perso : Programmer dans AutoCAD
bonuscad Posté(e) le 26 novembre 2003 Posté(e) le 26 novembre 2003 Il est dit qu'Autolisp utilise en interne des valeur 32 bits (et que les valeur transferées à AutoCAD sont limitées à 16)Pour t'en assurrer essaye (rtos (- pi 3) 2 16) Donc à 12 décimale je pense qu'il ne doit pas "souffrir" bien qu'il est en limites.(12 + 4 chiffre significatif), l'écart ne devrait concerné que l'arrondi du dernier chiffre. Toujours est il que je comprend pas pourquoi l'écart est si grand avec des valeurs qui ne sont pas le résultat d'un calcul précédent Si l'écart est si important, je veux bien récupérer les résisudus des opérations informatique des transactions boursières. Pour moi ça me suffirait ;) si tout les 8000€ j'en récupére le 1E-12 je prends! NB tiré des conversion d'unité d'Autodesk*meter(s),metre(s),m-1,0,1,0,-1,4.1214856408e11,0In this example, the constants that make one meter are as follows: Utiliser 11 chiffre après la virgule ne leur a pas apparu incongru. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Labletech Posté(e) le 26 novembre 2003 Posté(e) le 26 novembre 2003 Je disais bien que je n'étais pas sûr de la précision théorique d'Autocad. En l'occurence je me suis simplement contenté d'aller dans le contrôle des unités de Format .Celui-ci avait l'air de limiter la précision à 10 décimales et je me suis contenté de ce résultat.Effectivement il doit être possible ensuite de pousser cette limite à des valeurs supérieures en fonction des différents modules liés à Autocad (lisp, C, etc ..) mais elles ne sont peut-être pas aussi bien supportées que cela.Ceci expliquerait cela ...Néanmoins pour Didier, je crois savoir qu'il a souvent eu l'occasion de faire de personnalisations orientées topo. Les fonctions trigo sont un joyeux exemple en matière de précisions et de comparaison !!!C'est vrai qu'il faut faire gaffe aux seuils de comparaison et ceux_ci doivent souvent être .... assez généreux ... dirons nous.Quant-à toi Bonuscad tu as peut-être compris le processus de ce que l'on appelle les fuites financières en SUISSE ou dans les iles KAÏMAN parfaites ...Les fuites logicielles ca existe et faut faire avec ... ;) Formateur ATC Autocad - Mechanical - Inventor - Electrical
Invité Patrick Posté(e) le 26 novembre 2003 Posté(e) le 26 novembre 2003 Si l'écart est si important, je veux bien récupérer les résisudus des opérations informatique des transactions boursières. Pour moi ça me suffirait C'est précisément cela qu'avait fait un employé de banque il y a quelques années, il faisait virer des fractions de centimes sur son compte. Il s'était fait coincé et depuis que la combine est connue, le fait ne s'est à ma connaissance pas reproduit.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant