Numéro d'article: 69333 - Dernière mise à jour: mardi 16 août 2005 - Version: 2.2 Comment faire pour travail autour des problèmes de précision/comparaison en
Résumé Pour tester fiable si deux variables à virgule flottante ou expressions sont égale (à l'aide au format IEEE ou MBF), vous devez soustraire les deux variables comparées et vérifier si leur différence est inférieure à une valeur choisie dans les limites de précision pour simple ou double précision. AUCUN AUTRE TEST ÉGALITÉ N'ÊTRE FIABLE. Les formules suivantes tester fiable Si X et Y sont identiques :
MBF (format binaire Microsoft) se trouve dans Microsoft QuickBasic pour MS-DOS (version de coprocesseur non QB.EXE uniquement), les versions 1.0, 1.01, 2.0, 2.01 et 3.0 et Microsoft GW-Basic interprète pour MS-DOS, versions 3.2, 3.22 et 3.23. Les informations contenues dans cet article sont également inclus dans le fichier d'aide fourni avec le standard et professionnel éditions de Microsoft Visual Basic pour MS-DOS, version 1.0. Plus d'informations Remarque : les chiffres significatifs dans un nombre calculé peuvent être perdues en raison d'à la suivante : plusieurs calculs, notamment addition de nombres présent séparée de valeur, ou la soustraction de nombres similaire dans valeur. Lorsqu'un nombre résultats de plusieurs calculs, vous devrez peut-être modifier votre test d'égalité d'utiliser moins de chiffres significatifs pour refléter la perte mathématique de chiffres significatifs. Si votre test de l'argument précision utilise trop de chiffres significatifs, vous pouvez échouer à découvrir que nombres comparés égalité sont effectivement égaux dans la limite de précision possible. Dans les base produits répertoriés ci-dessus qui utilisent au format à virgule flottante IEEE, calculs intermédiaires sont effectuées dans un registre de temporaire 64 bits interne, qui possède plus d'octets de précision que sont stockés dans des variables simple précision ou double précision. Cela entraîne souvent une instruction IF renvoyer une erreur les états que le calcul intermédiaire n'est pas égal à l'expression est comparée. Par exemple : Référence : Normes L'IEEE et le MBF tente d'équilibrer la précision et la précision de plage numérique et la vitesse. La précision mesure le nombre bits significatifs de précision ne sont pas perdus dans les calculs. Précision correspond le nombre de bits dans la mantisse, qui détermine combien de chiffres décimaux peut être représentés. À la fois au format IEEE et MBF stocker des nombres de la 1.x de formulaire à la puissance d'y (où x et y sont des nombres 2 base; x est la mantisse et y est l'exposant). MBF simple précision a 24 bits de mantisse et double précision a de mantisse 56 bits. Tous les calculs MBF sont effectués dans seulement 24 ou 56 bits. IEEE simple précision a 24 bits de mantisse et double précision a 53 bits de mantisse. Cependant, toutes les simple précision et de double précision IEEE calculs dans Visual Basic for MS-DOS, version 1.0 ; QuickBasic pour MS-DOS, versions 3.0/4.x ; de compilateur pour MS-DOS, versions 6.0 et 6.0b ; Basic et base PDS pour MS-DOS, versions 7.0 et 7.1re effectués dans un Registre 64 bits temporaire pour plus de précision. Par conséquent, les calculs IEEE sont plus précis que calculs MBF, en dépit permet de MBF de représenter plusieurs bits dans double précision. La plupart des nombres dans la notation décimale (base 10) n'ont pas une représentation exacte dans le format de stockage à virgule flottante binaire (base 2) utilisé dans types de données simple précision et de double précision. À la fois au format IEEE et MBF ne peut pas exactement représentent (et devez arrondir) tous les numéros ne sont pas du 1.x de formulaire à la puissance d'y (où x et y sont des nombres 2 base). Les numéros peuvent être représentés exactement sont réparties sur un très grand nombre. Une densité élevée des nombres représentable est près 1.0 et de-1.0, mais moins et moins représentable numéros se produisent que les numéros d'aller vers 0 ou infini. Les limitations ci-dessus souvent provoquer Basic pour des résultats en virgule flottante différents de ceux vous pouvez l'imaginer. Plus d'informations sur ce sujet se trouvent dans la Base de connaissances en interrogeant sur les mots suivants : Floating point format et QuickBasic Le format de point flottant IEEE est documenté dans les manuels suivants :
conversion MBF et et exposant Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
Traduction automatiqueIMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique. La version anglaise de cet article est la suivante: 69333
(http://support.microsoft.com/kb/69333/en-us/
)
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Autres ressources Autres sites d'aide
CommunautésTraductions disponibles
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email



Retour au début