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]