Ich nix verstehe!
-
#include <iostream> #define PI 3.1111111111222222222233333333334444444444555555555566666666667777777777 using namespace std; int main(int argc, char *argv[]) { short myShort = 32767; int myInt = 2147483647; float myFloat = PI + 10; double myDouble = PI; cout.precision(61); cout << "short " << myShort << endl; cout << "int " << myInt << endl; cout << "float " << myFloat << endl; cout << "double " << myDouble << endl; return 0; }
/*
cout.precision(61);Soll angeblich 60 nachkommastellen anzeigen, bei mir aber vlt 40 oder so. und es verändert den wert!
Kann mir jemand sagen was da passiert bin sehr dankbar:)ab der 17. stelle ändert es sich
*/
-
Wo hast Du denn diesen Wert für pi her?
Das passiert.
-
wenn ich 3.141592653589793238462643383279502884197169399375105820974944
für pi einsetze dann bekomme ich was "ordentlicheres" aber ich verstehe immernoch nicht warum es keine 60 stellen sind
-
HelpIneedSomebodyHelp schrieb:
wenn ich 3.141592653589793238462643383279502884197169399375105820974944
für pi einsetze dann bekomme ich was "ordentlicheres" aber ich verstehe immernoch nicht warum es keine 60 stellen sinddouble hat bei 64 Bit nur 17 signifikante Stellen.
Du kannst nicht mehr Information in eine Variable quetschen, als diese auf Grund ihrer Bitzahl aufnehmen kann.
-
Aber du darfst nicht signifikante Stellen mit Nachkommastellen gleichsetzen.