Einzelnen Beitrag anzeigen

Dipl Phys Ernst Winter

Registriert seit: 14. Apr 2009
Ort: Jena
103 Beiträge
 
Delphi 3 Professional
 
#26

Re: Fließkommazahlen auf Gleichheit prüfen

  Alt 2. Mai 2009, 20:11
Zitat:
Ich bräuchte aber ein entsprechende Beispiel, beim dem die Abfrage auf Gleichheit nicht funktioniert
Bitt sehr:
Delphi-Quellcode:
var
  a, b: extended
begin
  a:= 0.9;
  b:= 0.09;
  if 0.1*a=b then lblIstGleich.Caption:= 'ist gleich'
             else lblIstGleich.Caption:= 'ist ungleich';
end;

Korrekt treibt man beim Vergleich von Gleitkommazahlen Epsilontik:

const
  eps= 1e-14; // Definiert eine Umgebung für Rundungsfehler
var
  a, b: extended;
begin
  if a<-eps then.... // a<0
  if Abs(a)<eps then... // a=0
  if a>eps then... // a>0
  if Abs(a-b)<eps then // a=b
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
Autor: DP Ernst Winter
  Mit Zitat antworten Zitat