Heim > Backend-Entwicklung > C++ > Warum zeigt die Arithmetik mit doppelter Genauigkeit manchmal eine Genauigkeit von mehr als 15 Dezimalstellen an?

Warum zeigt die Arithmetik mit doppelter Genauigkeit manchmal eine Genauigkeit von mehr als 15 Dezimalstellen an?

Barbara Streisand
Freigeben: 2024-11-30 19:49:14
Original
662 Leute haben es durchsucht

Why Does Double-Precision Arithmetic Sometimes Show More Than 15 Decimal Places of Precision?

Doppelte Präzision: Die erweiterte Präzision verstehen

Bei der Arbeit mit Datentypen mit doppelter Genauigkeit wird allgemein davon ausgegangen, dass die ungefähre Genauigkeit begrenzt ist auf 15 Dezimalstellen genau. Bestimmte Zahlentypen, wie z. B. 1,0/7,0, können jedoch eine Genauigkeit von 17 Dezimalstellen anzeigen, wenn sie intern als Double gespeichert werden.

Diese Anomalie ist auf das inhärente Design der IEEE-Double-Datendarstellung zurückzuführen. Werte mit doppelter Genauigkeit haben 53 signifikante Bits und bieten eine Genauigkeit von etwa 15,95 Dezimalstellen. Die C-Bibliothek rundet diesen Wert jedoch auf 15 ab, was zu einer theoretischen Genauigkeit von 15 Dezimalstellen führt. In Wirklichkeit wird der Wert von DBL_DIG aufgrund dieser Rundung auf 15 statt auf 16 gesetzt.

Die Bedeutung dieser erweiterten Genauigkeit wird mithilfe der Funktion nextafter() weiter erläutert. Diese Funktion berechnet die darstellbare Zahl, die einem gegebenen Wert am nächsten kommt. Bei der Untersuchung des Werts von 1,0/7,0 mit dieser Funktion zeigt die Ausgabe drei aufeinanderfolgende Werte mit unterschiedlichen letzten Ziffern: 0,14285714285714282, 0,14285714285714285 und 0,14285714285714288.

Der genaue Wert der zuletzt angezeigten Ziffer ist wird durch die vom Compiler durchgeführte Rundungsoperation bestimmt. In diesem Fall ändert sich die Ziffer bei jedem Schritt um 3, was darauf hinweist, dass die Genauigkeit etwa 16 Dezimalstellen beträgt. Während also die theoretische Genauigkeit eines Doubles 15 Dezimalstellen beträgt, bietet die erweiterte Genauigkeit von fast 16 Stellen eine höhere Genauigkeit für bestimmte Arten von Berechnungen.

Das obige ist der detaillierte Inhalt vonWarum zeigt die Arithmetik mit doppelter Genauigkeit manchmal eine Genauigkeit von mehr als 15 Dezimalstellen an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage