Heim > Backend-Entwicklung > C++ > Warum zeigt Double Precision für einige sich wiederholende Dezimalstellen 17 Dezimalstellen an?

Warum zeigt Double Precision für einige sich wiederholende Dezimalstellen 17 Dezimalstellen an?

Linda Hamilton
Freigeben: 2024-12-03 07:40:09
Original
380 Leute haben es durchsucht

Why Does Double Precision Show 17 Decimal Places for Some Repeating Decimals?

Doppelte Präzision: Untersuchung der Genauigkeit der Dezimaldarstellung

Doppelte Präzision, ein in der Programmierung häufig verwendeter Datentyp, bietet eine angebliche Genauigkeit von etwa 15 Dezimalstellen Orte. Beim Umgang mit Werten, die als sich wiederholende Dezimalstellen dargestellt werden, wie z. B. 1,0/7,0, treten jedoch Anomalien auf.

Warum 17 Dezimalstellen?

Intern besitzen Zahlen mit doppelter Genauigkeit 53 signifikante Bits, was etwa 15,95 Dezimalstellen entspricht. Während dies theoretisch zu 16 Dezimalstellen der Darstellung führen sollte, runden Implementierungen auf 15 ab (gekennzeichnet durch DBL_DIG).

Zur Veranschaulichung: Die Funktion nextafter() kann die nächsten darstellbaren Zahlen neben einem bestimmten Wert anzeigen. Bei der Anwendung auf 1,0/7,0 (0,14285714285714285) beobachten wir 17 angezeigte Dezimalstellen. Die Änderung der letzten Ziffer gibt die tatsächliche Präzision der Darstellung an.

Präzision und Zufall

Im Fall von 1.0/7.0 stimmt die letzte angezeigte Ziffer zufällig mit der überein mathematischer Wert (5). Bei anderen sich wiederholenden Dezimalzahlen (z. B. 1,0/3,0) stimmt die letzte Ziffer jedoch möglicherweise nicht überein, was die Einschränkungen der präzisen Dezimaldarstellung deutlich macht.

Das obige ist der detaillierte Inhalt vonWarum zeigt Double Precision für einige sich wiederholende Dezimalstellen 17 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