Hallo
Meine Frage:
Ich habe eine Windows-Anwendung erstellt. In einer TextBox soll der Anwender eine Anzahl Münzen eingeben, die in usAnzahl gespeichert werden.
Des weiteren soll der Anwender aus einer Liste mit Radio-Buttons einen Geldwert (0,01 €; 0,02 €; 0,05 €; 0,10 €; ... 500,00 €) wählen, der dann in dWert gespeichert wird.
Über einen Button kann er dann auswählen, ob dieses Produkt (aus Münzenwert und Anzahl) von der Gesamtsumme dGesamt subtrahiert oder addiert werden soll.
Soweit kein Problem.
dGesamt wird mit 0 initialisiert.
Bei einer Subtraktion wird geprüft: if ((dGesamt - usAnzahl * dWert) >= 0) wenn diese bedingung erfüllt ist, wird die rechnung ganz normal durchgeführt. wenn sie NICHT erfüllt ist, wird eine MessageBox angezeigt mit dem Hinweise, dass der Wert unter 0 fallen würde und deshalb nicht möglich ist.
Mein Problem an Hand eines Beispiels:
Addiert man z.B. 1 * 0,02 und 1 * 0,01 wird dGesamt = 0,03. Logisch.
Nun subtrahiere ich 1 * 0,01. => dGesamt = 0,02
In einem weiteren Schritt subtrahiere ich nocheinmal 1 * 0,01. => dGesamt = 0,01
Noch ein Versuch zu subtrahieren: 1 * 0,01. eigentlich sollten von 0,01 nocheinmal 0,01 * 1 abgezogen werden. Dies ergäbe 0 und die Bedingung (s. oben) ist erfüllt. Doch stattdessen erhalte ich meine Fehlermeldung, dass der Wert unter 0 fallen würde..
Kann mir jmd. sagen wieso? Ich arbeite seit Stunden an diesem Problem und komme nicht weiter.
Bei einer unformatierten Ausgabe des Wertes erhalte ich "-3,46944695195361E-18" also einen mir unerschließlichen Wert unter 0, obewohl genau 0 das Ergebnis sein sollte...