ich habe zur Übung einen WechselgeldRechner zusammengeschustert.
Kann mir jemand helfen und sagen wo der Fehler liegt?
Er dividiert einfach nicht 0,05 durch 0,05?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WechselGeld { class WechselGeldMethode { public void RestGeld() { Console.Write("Geben Sie den Preis des Produktes ein: "); double preisProdukt = Convert.ToDouble(Console.ReadLine()); Console.Write("Geben Sie den bezahlten Betrag ein: "); double gezahltesGeld = Convert.ToDouble(Console.ReadLine()); double restGeld = gezahltesGeld - preisProdukt; Console.WriteLine("Restgeld: " + (gezahltesGeld - preisProdukt)); double[] array1 = new double[] { 5.00, 2.00, 1.00, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 }; int i = 0; while (i <= 8) { double abziehen = array1[i]; double wert = Math.Floor(restGeld / abziehen); // double rest = restGeld % array1[i] ; if (wert >= 1) restGeld = (restGeld - wert*abziehen); Console.WriteLine("Anzahl von " + array1[i] + " Euro: " + wert); i++; } Console.ReadLine(); } } }
ich habe schon
while (i <= 8)gesetzt, da scheinbar das Programm andernfalls in eine Endlosschleife läuft.
Ursprünglich wollte ich
while (i >= 0.01)eintragen.
Sagen wir mal, das Produkt kostet 3,75
Ich denke es ist ein großer Anfängerfehler
Danke
Dieser Beitrag wurde von bartii bearbeitet: 05. November 2011 - 23:59