In der Computerprogrammierung wird häufig davon ausgegangen, dass der Datentyp mit doppelter Genauigkeit eine ungefähre Genauigkeit von 15 Dezimalstellen hat. Bestimmte Zahlendarstellungen wie 1,0/7,0 scheinen jedoch präziser zu sein, wenn sie intern innerhalb der Variablen dargestellt werden. In diesem Artikel wird untersucht, warum dies geschieht und warum die Genauigkeit häufig mit etwa 15 Dezimalstellen angegeben wird.
Ein IEEE-Double hat 53 signifikante Bits, was ungefähr 15,95 Dezimalstellen entspricht. Um Rundungen zu berücksichtigen, setzt die Implementierung die Genauigkeit (DBL_DIG) auf 15. Dies bietet fast eine zusätzliche Dezimalstelle an Genauigkeit, die über das hinausgeht, was durch DBL_DIG impliziert wird.
Bei der Anzeige eines Doubles Compiler runden den Wert normalerweise basierend auf der Genauigkeit. Beispielsweise hat 1,0/7,0, wenn es mit „%.17g“ angezeigt wird, eine Genauigkeit von 17 Stellen. Wenn jedoch „%.64g“ verwendet wird, erscheinen keine signifikanten Ziffern über die erwartete 15-stellige Genauigkeit hinaus.
Zahlen mit doppelter Genauigkeit haben eine interne Darstellung, die etwa 15,95 Dezimalstellen zulässt der Präzision. Aufgrund der Rundung beträgt die angezeigte Genauigkeit jedoch typischerweise 15 Dezimalstellen. Diese Erklärung hilft zu klären, warum bestimmte exakte Zahlen, wie 1,0/7,0, intern scheinbar präziser sind, bei der Anzeige jedoch immer noch der geschätzten 15-stelligen Genauigkeit entsprechen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3