Guten Abend,
ich habe ein Problem mit meinem Code, welcher hier drunter steht:
Code: Alles auswählen
def countCoins(pay, cost):
coins = [2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01]
changemoney = pay - cost
count = 0
while changemoney > 0.1:
for x in coins:
r = divmod(changemoney, x)
count = count + r[0]
changemoney = r[1]
return count
print(countCoins(2.0, 1.30))
Die Funktion soll, am Ende zurückgeben wie viele Münzen man benötigt um das Wechselgeld rauszugeben. Nun meine Frage und zwar, ist in de Variable changemoney das Wechselgeld gespeichert, was in den meisten Fällen eine Kommazahl ist. in dem Beispiel oben ist dann das Problem, dass wenn divmod durchgelaufen ist mit 0.5 zum Beispiel ist der neue Wert von changemoney dann 0.199999999 .... obwohl es ja eigentlich 0.2 sind. Dadurch das der wert so komisch ist kommt da auch nie das richtige Ergebnis raus. Kann mir jemand helfen, wie ich das richtig hinbekomme?
MfG
Tyroun