frage zu einem einfach programm
-
ich habe folgendes programm mit borland compiliert.. als radius habe ich 37,45 eingegeben, als hoehe 67,45.. als ergebnis für das volumen, sollte eigentlich 297190,88 rauskommen.. die nachkommastellen werden aber nur angezeigt wenn ich 2 zeilen mehr ins programm mit reinnehme:
#include <vcl.h> #include <conio.h> #include <iomanip> #include <iostream.h> #include <math.h> int main() { double radius, volumen, hoehe, flaeche; do { cout <<setprecision(2); // erste zusätzliche zeile cout <<fixed; // zweite zusätzliche zeile cout << "Flaecheninhalt und Volumen eines Zylinders\n\n\n"; cout << "Radius: "; cin >> radius; cout << "Hoehe: "; cin >> hoehe; flaeche = M_PI * (radius * radius); volumen = flaeche * hoehe; cout << "\n\nFlaechen: " << flaeche << "\n"; cout << "Volumen: " << volumen << "\n\n\n\n"; cout << "Nochmal? (j/n)"; } while (getch() == 'j'); return 0; }
wieso muss ich erst festlegen, dass 2 stellen nach dem komma angezeigt werden um das richtige ergebnis zu bekommen? die variablen sind doch alle als double deklariert und sollten soch auch nachkommastellen anzeigen oder nicht?
-
cout gibt standartmaessig einfach nur 6 significante Ziffern aus, für double
-
achso, dass heisst also, da ich 6 stellen vor dem komma habe, wird der rest abgeschnitten?
-
Das heist das der 6 Stellen ausgibt, die letzte wahrscheinlich gerundet.
Ich weis nicht was du mit abschneiden meinst, aber der Wert in deiner Variablen aendert sich nicht.Wenn du einen Wert von 987,654321 hast gibt er dann 987,654 aus.
-
schon klar.. war etwas unglücklich ausgedrückt.. danke erstmal