Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#3

Re: Warum ist 1.1 nicht gleich 1.1

  Alt 28. Sep 2006, 17:09
Doubles sind Fliesskommazahlen.

Eine Zuweisung von 1.1 kann u.u. einen Wert von 1.100000000000000000000000000000001 oder ähnliches im Double erzeugen (je nach aktueller Genauigkeit). Aber 1.100000000000000000000000000000001 ist nunmal nicht 1.1. Ergo false, da hat Delphi vollkommen recht

Du musst hier auf eine ausreichende Genauigkeit runden bevor Du vergleichst bzw. du Subtrahierst die voneinander und vergleichst dann auf einen maximalen Differenzwert.

z.B.
if (((1.1 - tmp_double) < 0.000001) AND ((1.1 - tmp_double) > -0.000001)) then Edit Nachtrag: Wenn Du die Different als Absolutwert nimmst brauchst Du nur auf < zu vergleichen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat