vorkomma und nachkomma trennen
-
hallo miteinander!
ich hab einen freiwilligen kurs c++ in der schule belegt, wir werden aber leider sehr oft aut tutorials verwiesen. jetzt haben wir eine aufgabe bekommen bei der mir irgendwie kein tutorial so richtig weiterhelfen kann.
wir sollen einen getränkeautomaten programmieren, soweit kein problem.bei der ausgabe sollen wir euro und cent getrennt angeben.
aber vorher rechne ich ja zb, 5€ + 1,50€ = 6,50€.wie kann ich denn danach vorkomma und nachkomma getrennt angeben?
wäre für hilfreiche tipps sehr dankbar!gruß HaY
-
Wenn ich das jetzt nicht durcheinanderbringe, dann dürfte es z.B. so gehen:
double d=6.5; double vor=ceil(d); double nach=ceil(d)-d;
-
HaY schrieb:
bei der ausgabe sollen wir euro und cent getrennt angeben.
aber vorher rechne ich ja zb, 5€ + 1,50€ = 6,50€.Rechne am besten in Cent um, also so etwas wie
long cent = runden(preis*100);
wobei die Funktion runden noch zu definieren wäre. Dann helfen Dir die Operatoren / und % weiter. Wenn Du / auf Ganzzahlen anwendest, ist das eine Ganzzahldivision. Der Operator % liefert den Divisionsrest. Als Divisor kannst Du 100 nehmen, um es wieder in Eur und Cent aufzuteilen. Für / und % gilt folgendes:(a/b) * b + (a%b) = a und |a%b|<|b| ~~~~~ ~~~~~ Division mit Restfalls a und b Ganzzahlen sind und b ungleich 0 ist. Gilt darüber hinaus 0<=a und 0<b, so ist der Divisionsrest auch garantiert nicht negativ: 0<=(a%b)<b.
Gruß,
SP
-
ceil steht im englischen für die Decke, also die nächstgrößere(!) ganze Zahl. floor steht für den Boden also in diesem Fall müsste es wohl heißen:
double d=6.5; double vor = floor(d); // Achtung nur solange d >= 0 ist double nach = d- vor;das erfordert übrigens ein #include <cmath>
Für die Zwecke von HaY reicht aber auch ein
double d=6.5; double vor = int(d); double nach = d- vor;
-
Werner_logoff schrieb:
ceil steht im englischen für die Decke, also die nächstgrößere(!) ganze Zahl.
Ach wusste ich doch, dass ich das mal wieder durcheinandergebracht hab...

-
Es geht auch mit der Methode div, wenn Du vorher den Betrag in Cent umrechnest
#include <math.h> void split(const double& valueInCent, long& euro, long& cent) { div_t div_result; div_result = div( value, 100 ); euro = div_result.quot; cent = div_result.rem; }
-
super, dankeschön für die zahlreichen antworten!
werd gleich mal anfangen rumzuprobieren