Artikel-ID: 69333 - Geändert am: Dienstag, 16. August 2005 - Version: 2.2 So arbeiten, um Probleme bei Gleitkommatypen Genauigkeit-Vergleich
ZusammenfassungUm zuverlässig testen, ob zwei Gleitkommazahlen Variablen oder Ausdrücke sind gleich (mithilfe von IEEE-Format oder MBF), müssen Sie subtrahieren Sie die beiden Variablen verglichen und testen, ob die Differenz kleiner als ein Wert an die Grenzen des Bedeutung für einfache oder doppelte Genauigkeit ist. KEINE ANDEREN TEST AUF GLEICHHEIT WERDEN ZUVERLÄSSIG. Die folgenden Formeln testen zuverlässig, ob X und Y gleich sind:
MBF (Microsoft Binärformat) wurde in Microsoft QuickBasic für MS-DOS (nur QB.EXE nicht Coprozessor Version), Versionen 1.0, 1.01, 2.0, 2.01 und 3.0 und Microsoft GW-Basic-Interpreter für MS-DOS-Versionen 3.2, 3.22 und 3.23 gefunden. Die Informationen in diesem Artikel ist auch in der Hilfedatei mit der Standard und Professional Edition von Microsoft Visual Basic für MS-DOS, Version 1.0 bereitgestellten enthalten. Weitere InformationenHinweis: Significant Ziffern in einer berechneten Anzahl kann aufgrund von der folgenden sein: mehrere Berechnungen, insbesondere Addition der Zahlen in Wert weit auseinander oder Subtraktion von Zahlen in Wert vergleichbar. Wenn eine Zahl Ergebnisse aus mehreren Berechnungen müssen Sie den Test auf Gleichheit mit weniger signifikante Stellen mathematischen Verlust den signifikanten Ziffern entsprechend ändern. Wenn der Test von Bedeutung zu viele signifikante Ziffern verwendet wird, können Sie nicht ermitteln, dass Zahlen, die auf Gleichheit verglichen innerhalb der möglichen Genauigkeit tatsächlich gleich sind. In den oben aufgeführten Basic Produkten, die IEEE-Gleitkommaformat verwenden, werden Zwischenberechnungen in einen internen 64-Bit-temporäre Register durchgeführt mit mehr Bits Genauigkeit als in Variablen mit einfacher Genauigkeit oder mit doppelter Genauigkeit gespeichert sind. Dies führt häufig in einer Anweisung welche Zustände, die die intermediate Berechnung nicht gleich dem verglichenen Ausdruck ist ein Fehler zurückgegeben. Zum Beispiel: Verweis: IEEE- und MBF-Standards versuchen, Genauigkeit und Präzision bei numerischen Bereich und Geschwindigkeit auszugleichen. Genauigkeit misst, wie viele signifikanten Bits des Genauigkeit in Berechnungen verloren gegangen sind. Genauigkeit bezieht sich auf die Anzahl der Bits in der Mantisse, die bestimmt, wie viele Dezimalstellen dargestellt werden können. IEEE-Format und MBF gespeichert werden Nummern der dem Formular 1.x Potenz von y (wobei x und y sind base 2 Zahlen; X die Mantisse und y ist der Exponent). MBF einfacher Genauigkeit 24 Bits der Mantisse hat, und mit doppelter Genauigkeit hat der Mantisse 56 Bits. Alle MBF-Berechnungen werden innerhalb von nur 24 oder 56 Bits durchgeführt. IEEE einfacher Genauigkeit 24 Bits der Mantisse hat, und mit doppelter Genauigkeit 53 Bits der Mantisse hat. In einem temporären 64-Bit-Register für Genauigkeit alle mit einfacher Genauigkeit und doppelter Genauigkeit IEEE Berechnungen in Visual Basic für MS-DOS, Version 1.0; QuickBasic für MS-DOS, Versionen 3.0/4.x; in Basic-Compiler für MS-DOS, Versionen 6.0 und 6.0 b; und Basic PDS für MS-DOS, Versionen 7.0 und 7.1re jedoch ausgeführt. Folglich sind IEEE Berechnungen genauer als MBF-Berechnungen, trotz des MBF-Fähigkeit, mehr Bits mit doppelter Genauigkeit dar. Die meisten Zahlen im Dezimalsystem (Basis 10) Notation verfügen eine genaue Darstellung nicht in das Gleitkomma Binary (Basis 2)-Speicherformat in Datentypen mit einfacher Genauigkeit und mit doppelter Genauigkeit verwendet. Sowohl IEEE-Format als auch MBF kann nicht genau darstellen (und Rundung müssen) alle Zahlen, die nicht von dem Formular 1.x mit der Potenz y sind (wobei x und y sind Zahlen, base 2). Zahlen, die genau dargestellt werden können, werden über einen großen Bereich verteilt. Eine hohe Dichte von darstellbar Zahlen ist in der Nähe 1.0 und 1.0, aber weniger und weniger darstellbare Zahlen auftreten, wenn die Zahlen in Richtung 0 oder unendlich wechseln. Die oben genannten Einschränkungen verursachen häufig Basic zu Ergebnissen Gleitkommazahlen anders als Sie erwarten. Weitere Informationen zu diesem Thema sich in der Microsoft Knowledge Base befindet durch Abfragen auf der folgenden Wörter: Floating Point und Format und QuickBasic IEEE unverankerte Punkt Format wird in den folgenden Handbüchern beschrieben:
MBF und Konvertierung und exponent Die Informationen in diesem Artikel beziehen sich auf:
Maschinell übersetzter ArtikelWichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten. Den englischen Originalartikel können Sie über folgenden Link abrufen: 69333
(http://support.microsoft.com/kb/69333/en-us/
)
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
| Weitere Ressourcen Weitere SupportseitenCommunitySPRACHE AUSWÄHLEN
|






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



Zum Anfang