Veröffentlicht 18. März 200520 j Hi @ all, wenn ich folgendes Programm ausführe wird mir nicht die Zahl 123456.789 ausgegeben, sonder nur 123456. Wie bekomme ich es hin, dass die Ganze Zahl ausgegen wird??? Habe es auch schon mit double ausprobiert, leider ohne Ergebnis. #include <iostream> using namespace std; int main(){ float zahl = 123456.789; cout << "Zahl " << zahl << endl; return 0; } Gruß, Christian
19. März 200520 j Dein Beispiel gibt nicht 123456 sondern 123457 aus, die Nachkommastellen werden aufgerundet. Dies liegt daran das per Default die Genauigkeit auf 6 Stellen eingestellt ist, also immer nur bis zu 6 Stellen der Zahl (plus eventuellen Exponenten und Vorzeichen) ausgegeben werden. Mit std::setprecision kannst Du die Anzahl dargestellter Stellen verändern. Um dies nutzen zu können, musst Du noch zusätzlich den Header <iomanip> einbinden. Beispiel: #include <iostream> #include <iomanip> int main() { float zahl = 123456.789; std::cout << std::setprecision(10) << "Zahl: " << zahl << std::endl; return 0; }
19. März 200520 j noch viel einfacher könntest du die zahl auch explizit in einen int-wert konvertieren, also casten cout << "Zahl " << (int)zahl << endl; [/PHP] nicht getestet...
20. März 200520 j Hallo, nein, es sollte ja gerade die fehlenden Kommastellen mit ausgegeben werden. Wenn Du die Zahl konvertierst, dann geht diese Information verloren. Nic
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.