Bonjour,
J'aimerais savoir comment on peut utiliser la variable suivante pour éviter des erreurs d'arrondi :
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 const Icoor1 MaxICoor = 8388608;
Bonjour,
J'aimerais savoir comment on peut utiliser la variable suivante pour éviter des erreurs d'arrondi :
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 const Icoor1 MaxICoor = 8388608;
Bonsoir,
on pourrait avoir une question plus claire ?
On a une variable d'un type inconnu, "représentée" par un entier tout ce qu'il y a de plus parfait comme valeur entière.
Donc bon... en absence de boule de crystal (vacances bien méritées la pauvre)
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
N'avoir aucune erreur d'arrondi sur des opérations en virgule flottante? Tu en demandes beaucoup! Par nature des nombres à virgule flottante, il y aura des erreurs d'arrondi dans de très nombreux cas.
Pour ce qui est de les minimiser, la réponse dépend des opérations exactes...
Cette valeur tient entièrement dans la mantisse d'un flottant "double précision", elle n'a donc pas en soi d'erreurs d'arrondi...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Merci pour ces remarques. Je m'excuse le code source que j'analyse en ce moment est assez compliqué.
Je récapitule toutes les informations que j'ai:
et j'ai joins le document (c'est le code de la fin).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 const int MaxICoor = 8388608 ; //max de coordonnées entières 2^23 pour //ne pas avoir derreur darrondi const Icoor2 MaxICoor22 //plus gros produit de coordonnées MaxICoor22 = Icoor2(2)*Icoor2(MaxICoor) * Icoor2(MaxICoor) ; //plus loin on a coefIcoor = (MaxICoor)/(Max(pmax.x-pmin.x, pmax.y-pmin.y));
MaxIcoor22 est égal à 2^23 * 2^23 * 2, c'est-à-dire 2^47.
Même si ce n'était pas une puissance de 2 pure (et c'en est une), ça tiendrait quand même dans 53 bits de mantisse.
Par contre, coefIcor peut avoir une erreur d'arrondi.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager