Einzelnen Beitrag anzeigen

Sidi61

Registriert seit: 13. Jun 2006
97 Beiträge
 
Delphi XE5 Professional
 
#1

Zahlenvergleich vom Typ Real

  Alt 7. Jan 2018, 20:43
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!
  Mit Zitat antworten Zitat