Ich bin ein wenig daran interessiert, die Nummer mit der maximal verfügbaren Genauigkeit zu speichern:
%Vor%Ich versuche, es auf dem Bildschirm zu drucken:
%Vor%Und das ist es, was ich habe:
569.2323068268890400000000000000000000000000000000000000
Ist das die maximale Präzision, die ich erreichen kann?
P.S. Ich verwende Visual Studio 2008
Ein Double wird normalerweise im Format IEEE 754 binary64 gespeichert.
Ein binary64 hat 52 Bits der Genauigkeit, nicht 52 Dezimalziffern - dies entspricht maximal 17 Dezimalziffern, was Sie anzeigen.
Ist das die maximale Präzision, die ich erreichen kann?
Einige Plattformen können einen long double
bereitstellen, der tatsächlich größer ist als ein double
, aber deins scheint das nicht.
Wenn Sie mehr Präzision wünschen, können Sie entweder eine Bibliothek verwenden, die einen größeren / präziseren Typ unterstützt, der von Ihrer Hardware unterstützt wird (z. B. die 80-Bit-Erweiterung double), oder eine Bibliothek mit beliebiger Genauigkeit, die in Software funktioniert / p>
Das ist die Genauigkeit des Typs double
in Ihrer C-Implementierung. Conformant C-Implementierungen haben auch den Typ long double
, der kann größere Genauigkeit bieten.
Wenn Sie eine höhere Genauigkeit benötigen, dann gibt es numerische Bibliotheken, die numerische Typen und Funktionen mit beliebiger Genauigkeit für die Bearbeitung bereitstellen. Die GNU Multiple Precision Arithmetic Library ist eine solche; Es funktioniert auf vielen Plattformen, einschließlich der für Sie relevanten - Win32 und Win64.
Tags und Links c c++ visual-studio-2008 types