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:


Take the following example:

  transaction TmyTrans1
     p : float;
    p := 0.55;
      while (p <= 1.0) do
        Print(string(p), -1);
        p := p + 0.05; // increment p
  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.