Importer:Error:WasEmpty
-
Hallo
ich bin Programmierneuling und arbeite gerade das Buch "Einführung in die Programmierung mit C++ - Bjarne Stroustrup" durch. Eigentlich meine ich bisher alles zu verstehen, bleibe aber nun bei einer "Testen Sie ihr können" Aufgabe auf Seite 133, hängen.
Meine Lösung:
#include "std_lib_facilities.h" int main() { const double euro_per_dollar = 1.3371; const double yen_per_dollar = 0.010; const double pound_per_dollar = 1.6013; char unit = ' '; double amount = 0; cout << "Yen: y" << "\nEuro: e" << "\nPfund: p" << "\n\nGeben Sie den Betrag und das Währungskürzel ein: "; cin >> amount >> unit; if(unit == 'y') { cout << "\n" << amount << " Yen == " << amount * yen_per_dollar << " US$\n"; } else if (unit == 'e') { cout << "\n" << amount << " Euro == " << amount * euro_per_dollar << " US$\n"; } else if (unit == 'p') { cout << "\n" << amount << " Pfund Stirling == " << amount * pound_per_dollar << "US$\n"; } else { cout << "\nFehler: Die Währung ist unbekannt\n"; } }Wenn ich das Programm teste, kann ich z.B. 10y eingeben und bekomme das Ergebnis für Yen. Gebe ich 10p ein, bekomme ich das Ergebnis für Pfund.
Wenn ich aber 10e eingebe, bekomme ich nur "Fehler: Die Währung ist unbekannt". Wenn ich dafür 10 e eingebe, bekomme ich das richtige Ergebnis für Euro.Warum muss ich bei e ein Leerzeichen einfügen bzw. wo ist mein Fehler?
Gruß
dirac
-
Das Problem ist, soweit ich sehe, dass du Fließkommazahlen verwendest (10e ist eine Hälfte der Notation einer Fließkommazahl). Was passiert, wenn du
intfüramountnimmst?
-
Das funktioniert - danke!
Als double versucht das Programm 10e als wissenschaftliche Schreibweise zu interpretieren. Verstehe ich das richtig?
-
dirac schrieb:
Als double versucht das Programm 10e als wissenschaftliche Schreibweise zu interpretieren. Verstehe ich das richtig?
Ganz genau.