Hallo,
eine Verständnisfrage.
1. Warum haben alle Ausgaben viel mehr Nachkommastellen als der Datentyp eigentlich fassen sollte?
2. Warum sind diese Nachkommastellen dann falsch?
3. Wieso hat long double nicht mehr korrekte Stellen als double?
Ausgabe:
3333.333251953125 -> 7 korrekte Stellen bei float
3333.33333333333348491578362882137298583984375 -> 16 korrekte Stellen bei double
3333.33333333333348491578362882137298583984375 -> 16 korrekte Stellen bei long double
eine Verständnisfrage.
1. Warum haben alle Ausgaben viel mehr Nachkommastellen als der Datentyp eigentlich fassen sollte?
2. Warum sind diese Nachkommastellen dann falsch?
3. Wieso hat long double nicht mehr korrekte Stellen als double?
Code:
float float1;
double double1;
long double longdouble1;
float1= 10000.0/3.0;
double1= 10000.0/3.0;
longdouble1 = 10000.0/3.0;
cout << std::setprecision(70) << "float -> " << endl<< float1<< endl<< endl;
cout << std::setprecision(70) << "double -> " << endl<< double1<< endl<< endl;
cout << std::setprecision(70) << "long double -> " << endl<< longdouble1 << endl<< endl;
3333.333251953125 -> 7 korrekte Stellen bei float
3333.33333333333348491578362882137298583984375 -> 16 korrekte Stellen bei double
3333.33333333333348491578362882137298583984375 -> 16 korrekte Stellen bei long double