006
25.04.2013, 10:15 Uhr
~f.-th.
Gast
|
Hab gerade noch mal ein wenig gesucht. Je nach Zahl und Compiler sollen 15 bis 16 Stellen bei double möglich sein laut MSDN.
Viele Beiträge, die die Suche findet, finden nur 5 oder 6 Nachkomma-Stellen.
Ohne Test: Es kann sein, wenn man eine Mathe-Bibliothek einbindet und den Mathe-Header setzt, das dann erst die theoretisch möglichen Grenzen realisierbar sind. Man kann das ja erst mal mit der Mathe-Bibliothek des Compilers versuchen. Das kann auch Compiler-abhängig sein!
Dein Beispiel auf dem gcc und anderen ohne Bibliothek und Header:
C++: |
#include <stdio.h> // #include <math.h>
int main() { /*123456789.1234567e+123*/ double a; a = 123456789.1234567e+123; printf("a = %5.7e\n", a); printf("a = %1.15e\n", a);
system("Pause"); return 0; }
|
Der gcc macht daraus auf einem 32bit Windows eine Stelle vor dem Komma und den Rest danach. Also die 2te Ausgabezeile 15 Stellen nach dem Komma. Ebenso der Digital Mars und der Tiny C.
Der Open Watcom und der Borland free BCC 5.5 streiken.
MfG f.-th. |