Programmieren Hilfe?
static void Main()
{
double cent20;
Console.Write("Wie viele Zwanzigerl: ");
cent20 = Convert.ToInt32(Console.ReadLine());
Console.Write("Wie viel Fünzigerl: ");
double cent50 = Convert.ToInt32(Console.ReadLine());
Console.Write("Wie viele Eurostücle: ");
double euro1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Wie viel ZweiEuroStücke: ");
double euro2 = Convert.ToInt32(Console.ReadLine());
double newCent20 = cent20 * 0.20;
double newCent50 = cent50 / 2;
double newEuro2 = euro2 * 2;
double result = newCent20 + newCent50 + euro1 + newEuro2;
Console.WriteLine($"{result} und ...... cent");
Hey Leute, wie kann ich die Zahl nachdem Komma allein schreiben, also wie kann ich die Cents ausrechnen?
Danke im voraus!
4 Antworten
Mach statt
double result = newCent20 + newCent50 + euro1 + newEuro2;
erstmal
double resultCent = newCent20 + newCent50;
double resultEuro = euro1 + newEuro2;
das du das schonmal getrennt hast voneinander ...
Bei resultEuro musst du dann nur noch gucken, wie viel Euro du aus den Cent bekommst, und diese mit einrechnen und von den Cent wieder abziehen
Es wäre natürlich noch einfacher einfach die Euro in Cent umzuwandeln und dann einfach geteilt durch 100 zu machen ...
Aber dann würde er ja "31,5" rausbekommen in seinem Beispiel und nicht "31 Euro und 50 Cent"
Kinders, ihr stellt Euch aber alle an...
//es gibt nur "Ganze" Münzen , also Integer
Console.Write("Wie viele Zwanzigerl: ");
int cent20 = Convert.ToInt32(Console.ReadLine());
Console.Write("Wie viel Fünzigerl: ");
int cent50 = Convert.ToInt32(Console.ReadLine());
Console.Write("Wie viele Eurostücle: ");
int euro1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Wie viel ZweiEuroStücke: ");
int euro2 = Convert.ToInt32(Console.ReadLine());
// auch beim Zusammenrechnen belassen wir es bei Cent das spart viel Ärger mit falschen Rundungen
// und macht Konvertierungen überflüssig
int sumCent20 = cent20 * 20;
int sumCent50 = cent50 * 50;
int sumEuro1 = euro1 * 100;
int sumEuro2 = euro2 * 200;
int sumCents = sumCent20 + sumCent50 + sumEuro1 + sumEuro2;
int Cents = sumCents % 100; //ganz einfache IntegerMathematik Modulo und Division
int Euros = sumCents / 100;
Console.WriteLine($"gesammt :{sumCents} cent");
Console.WriteLine($"{Euros} Euro und {Cents:D2} cent"); //formatiere zur Sicherheit die Cents auf 2 Stellen, in der Sparbüchse landen auch noch kleine Münzen....
Console.ReadKey();
Einfach die Cents zusammenzählen.
Die Euros sind Alles geteilt durch 100 (da wir mit integer Rechnen fällt alles was kleiner 100 ist weg)
Das "Gegenstück" ist Modulo 100 (alles was >99 ist fällt weg) . was bleibt ist der Rest , die Cent.
Du meist wohl restlichen Cent nach dem Komma oder? Weil 1€ sind 100 Cent bzw. 120 Cent wären 1,20€.
Wenn du die insgesamten Cents ausrechnen willst: entweder Euros vorher konvertieren (*100) oder result (*100).
---
Falls du den Rest ausgeben willst gibts da verschiedene Herangehensweisen.
Simpleste wäre wohl einfach (*100) zu rechnen aber nur den die letzten zwei Zahlen auszugeben oder wenn du die Zahl weiter verwenden willst, (*100) und dann in Integer umwandeln, dann mit Modulo arbeiten. (%100) [gibt quasi den Rest einer 100-Teilung oder Vielfaches aus]. Also 245 % 100 wären 45.
Gibt auch Methoden die direkt das mit double machen können. fmod() in Java z.B.
----
Gibt viele Ansätze, die mehr oder weniger schön sind. Theoretisch kannst du auch result in String umformen und damit dann arbeiten. Musst halt kreativ werden. Dafür sind ja so Aufgaben da um einfach mal was auszuprobieren.
Warum rechnest du nicht alles in Euro um?
Den Anteil vor dem Komma erhältst du mit der Methode
Math.floor()
und den Nachkommaanteil, in dem du dieses Ergebnis vom Betrag abziehst. (In Cent umrechnen: natürlich mit 100 multiplizieren.)
-----
Warnung: diese Methode ist nicht 100%ig sicher - es kann zu Rundungsfehlern kommen, sodass z. B. ausgegeben wird
Dein Sparschwein enthält 26 Euro und 100 Cent
Deshalb wäre es sicherer, alles in Cent umzurechnen. Wie man hier auf den Euro-Anteil kommt, sei dem Leser zur Übung überlassen.
Warum rechnest du nicht alles in Cent um? ...dann must Du keine Rundungsfehler fürchten.
Wieso so umständlich.
Man rechnet doch normalerweise einfach alles zusammen. Und Erhält Euro und Cent