Hallo zusammen,
bin heute auf ein Problem gestoßen welches ich mir nicht erklären kann.
Ganz banale Sache - in einem Eingabeformular für ein Kassenbuch soll eine Rechnung erfasst werden. Eingangs wird der Gesamtbetrag eingegeben dann stehen 4 Editfelder für die Eingabe von Einzelbeträgen mit Zuweisung verschiedener Buchungskonten zur Verfügung.
Konkreter Fall (komischer Weise nur bei dieser Zahlenkombination)
Rechnungsbetrag : 43,60
Einzelbetrag1 : 20,95
Einzelbetrag2 : 22,65
Um Eingabefehler zu vermeiden soll die Summe der Einzelbeträge mit dem Gesamtbetrag verglichen werden
var GesBetrag, Summe : Real;
GesBetrag := StrToFloat(Edit.Rechbetrag.text);
Summe := StrToFloat(Edit.Einzelbetrag1.text) + StrToFloat(Edit.Einzelbetrag2.text);
Bei der Prüfung
if GesBetrag <> Summe then ShowMessage('Summendifferenz Rechnungsbetrag: '+FloatToStr(GesBetrag)+' zu Summe Einzel: '+FloatToStr(Summe));
wird ein Fehler angezeigt: Summendifferenz Rechnungsbetrag: 43,6 zu Summe Einzel: 43,6
Das Programm nimmt an dass der GesBetrag größer als die Summe ist. Komischer Weise nur bei dieser Zahlenkombination.
Habe mir jetzt wie folgt geholfen:
if (GesBetrag <> Summe) and (FloatToStr(GesBetrag)<>FloatToStr(Summe)) then
So funktioniert es, das kann aber nicht die Lösung sein
Hat jemand eine Idee??
Ist kein Scherz!