Ich habe das gerade getan:
double val1=numeric_limits<double>::max();
cout.precision(70);
cout<<"\nVal1: "<<val1;
Unter Windows erhalte ich nach 17 Ziffern (16 Ziffern nach dem Dezimalpunkt) 0s. Wenn ich jedoch unter Linux die cout.precision(NUMBER) erhöhe, werden mehr und mehr Ziffern angezeigt, die keine Nullen sind.
Außerdem zeigt die Ausführung des folgenden Codes sowohl unter Windows als auch unter Linux "15" an. Das Windows-System ist ein 32-Bit-System und das Linux-System ein 64-Bit-System, falls das einen Unterschied macht.
typedef std::numeric_limits< double > dl;
cout << "\tdigits (decimal):\t" << dl::digits10 << endl;
Kann mir jemand erklären, was hier los ist? Ich dachte, die Anzahl der Präzisionsstellen ist unter Windows und Linux gleich, da sizeof(double) in beiden Fällen 8 ist.