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.