Warum wird bei dem Befehl print (0.1 + 0.1 + 0.1 == 0.3) in Python "false" ausgegeben?
Das hat nichts mit Python zu tun, sondern damit, dass Computer nunmal intern mit Binärzahlen rechnen und es keine exakte Darstellung der Zahl 0.1 bei floating point Zahlen gibt. Es ist dabei auch vollkommem egal, wieviele bits du auf dieses problem schmeisst, es gibt keine exakte Darstellung.
Jetzt hast du eine Annäherung an die Zahl 0.1, addierst die dreimal und vergleichst ob die exakt mit einer anderen Annäherung von 0.3 übereinstimmt. Das kann nur schief gehen.
Also merke, == ist tabu für Gleitkommazahlen. Verwende stattdessen sowas hier:
abs((0.1 + 0.1 + 0.1) - 0.3) < delta
und weiter: niemals gar nie nicht verwende Gleitkommazahlen um irgendwas mit Geld auszurechnen.
Mit Python hast du Glück, das hat ein Modul decimal mit einem entsprechenden Datentyp, der Zahlen wie 0.1 exakt darstellen kann. Ist zwar saulangsam, aber hat speziell beim Rechnen mit so Sachen wie Geld auch so seine Vorteile.
Seufz, warum lernen Neulinge solche Sachen nicht zuerst?