Thema: Delphi probleme mit double

Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#5

Re: probleme mit double

  Alt 25. Jul 2006, 10:42
Zwei Gleitkommazahlwerte zu auf Gleichheit zu überprüfen ist sinnlos. Durch die interne Darstellungs- und Berechungsweise kann es immer zu kleinen Abweichungen kommen, wie in deinem Fall. Deshalb kann es auch vorkommen, dass dir als Zahl bspw. nicht 0.0038 sondern 0.0037999999999 angezeigt wird.
Ablöse dürfte ein Vergleich mit einem gegebenen Abweichungsfaktor bringen:
Delphi-Quellcode:
function DoublesEqual(a, b: double): boolean;
const
  epsilon = 0.000001;
begin
  result := abs(a - b) < epsilon;
end;
Epsilon gibt dabei die Genauigkeit an, auf die du die Gleichheit überprüfen möchtest.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat