uses System.Math;
var
A, B, Delta: Double;
IsEqual1, IsEqual2, IsEqual3: Boolean;
begin
A := 1.0;
B := (0.3 * 3) + 0.1;
//wrong way to compare
IsEqual1 := A = B;
//IsEqual1 is False
//correct way to compare
Delta := 1E-9;
IsEqual2 := Abs(A - B) < Delta;
//IsEqual2 is True
//the same check from the RTL
IsEqual3 := SameValue(A, B);
//IsEqual3 is True
WriteLn('isEqual1 is ', IsEqual1);
WriteLn('isEqual2 is ', IsEqual2);
WriteLn('isEqual3 is ', IsEqual3);
end.