Golfi1812 Geschrieben 7. Januar 2011 Teilen Geschrieben 7. Januar 2011 Hallo liebe Forumler Das ist mein erster Beitrag und gleich ein Problem: Ich habe folgendes Programm geschrieben: #include "std_lib_facilities.h" #include "conio.h" int main() { cout << "Geben Sie einen Gleitkommawert ein: "; double n; cin >> n; cout << "n == " << n << "\nn+1 == " << n+1 << "\ndreimal n == " << 3*n << "\nzweimal n == " << n+n << "\nn zum Quadrat == " << n*n << "\nHaelfte von n == " << n/2 << "\nWurzel von n == " << sqrt(n) << endl; getch(); return 0; } Hier wird ja eine double Variable also eine Gleitkommazahl mit mehreren Operationen getestet. Doch leider wird die Gleitkommazahl nachdem sie z.b. dreimal genommen wird als integer Wert ausgeben,also nicht als Dezimalzahl so wie es sein soll (jedoch ist das nicht so bei dem Wurzel ziehen) Wie erreicht man eine Ausgabe als Dezimalwert? Vielen Dank schonmal im Vorraus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 7. Januar 2011 Teilen Geschrieben 7. Januar 2011 Gib doch mal ein Beispiel für Eingabe und Ausgabe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Golfi1812 Geschrieben 7. Januar 2011 Autor Teilen Geschrieben 7. Januar 2011 Wenn die double 12.2 ist und sie wird verdreifacht sollte ja die Ausgabe 36.6 sein aber die Ausgabe ,die ich erhalte, ist 36. Übrignes: Ich programmiere mit Windows Visual 2010 Win32 Konsolenanwendungen (falls das relevant ist). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 7. Januar 2011 Teilen Geschrieben 7. Januar 2011 Um die Dezimalstellen richtig auszugeben kann man folgendes verwenden: precision - C++ Reference oder printf - C++ Reference Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 7. Januar 2011 Teilen Geschrieben 7. Januar 2011 Wenn die double 12.2 ist und sie wird verdreifacht sollte ja die Ausgabe 36.6 sein aber die Ausgabe ,die ich erhalte, ist 36.Kann ich nicht reproduzieren. Allerdings habe ich den Header <std_lib_facilities.h> nicht, vielleicht macht der irgendeinen Quatsch. Ich programmiere mit Windows Visual 2010 Win32 Konsolenanwendungen (falls das relevant ist).Ich auch. Versuch's bitte mal damit: #include <iostream> #include <conio.h> int main() { using namespace std; cout << "Geben Sie einen Gleitkommawert ein: "; double n; cin >> n; cout << "n == " << n << "\nn+1 == " << n+1 << "\ndreimal n == " << 3*n << "\nzweimal n == " << n+n << "\nn zum Quadrat == " << n*n << "\nHaelfte von n == " << n/2 << "\nWurzel von n == " << sqrt(n) << endl; getch(); return 0; }[/code] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Golfi1812 Geschrieben 7. Januar 2011 Autor Teilen Geschrieben 7. Januar 2011 Okay Danke an euch beide. Die headerdatei wird von einem Buch mit dem ich C++ lerne bereitgestellt. Das Programm ist als Beispielprogramm angegeben. Aber na gut. Ich werde jetzt den iostream benutzen . Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mttkrb Geschrieben 7. Januar 2011 Teilen Geschrieben 7. Januar 2011 Hallo, multipliziere die Zahl mal mit 3.0 und nicht mit 3 . Es sieht danach aus, dass die Zahl nach der Multiplikation auf Integer gecastet wird, wenn nicht beide Operatoren double-Werte sind. Gruß Jogibaer0411 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.