While it is possible to compare floating point values for equality it is not recommended due to limitations with their representation on PCs, further details are explained by Microsoft here:

http://support.microsoft.com/kb/42980 

Take the following example:

  transaction TmyTrans1
  var 
     p : float;
  begin
    p := 0.55;
      while (p <= 1.0) do
        Print(string(p), -1);
        p := p + 0.05; // increment p
      end;
  end TmyTrans1;


When the Float p is "Less than or Equal to" 1, it should run until 1 and Print 1.0. But it only Prints until 0.950000.

In order for the code above to print 1.0, it would be necessary to increase the compare point to 1.01.