anchor.diff:  
   
   
  -function DoublesAreEqual(const aValue1, aValue2 : double; const aDecimalNumbers : integer): boolean; overload;
  +function DoublesAreEqual(const aValue1, aValue2 : double; const aFloatingPointDigits : integer): boolean; overload;
   var
     CompareValue : double;
   begin
  -  CompareValue := Power(10, -1 * aDecimalNumbers) - Power(10, -1 * (aDecimalNumbers + 1)) - Power(10, -1 * (aDecimalNumbers + 2));
  +  CompareValue := Power(10, -1 * aFloatingPointDigits) - Power(10, -1 * (aFloatingPointDigits + 1)) - Power(10, -1 * (aFloatingPointDigits + 2));
     Result := (Abs(aValue1 - aValue2) <= CompareValue);
   end;
   
  
positive.code: 
  interface
  
  function DoublesAreEqual(const aValue1, aValue2 : double; const aDecimalNumbers : integer): boolean; overload;
  function DoublesAreEqual(const aValue1, aValue2 : double): boolean; overload;
  
  function DoubleIsLessThan(const aValue1, aValue2 : double) : boolean; overload;
  function DoubleIsLessThan(const aValue1, aValue2 : double; const aDecimalNumbers : integer): boolean; overload;
  
  function DoubleIsLessOrEqual(const aValue1, aValue2 : double) : boolean; overload;
  function DoubleIsLessOrEqual(const aValue1, aValue2 : double; const aDecimalNumbers : integer): boolean; overload;
  
  function SafeDiv (numer, denom: double): double;
  
  procedure SetDefaultDecimalNumbers (aDecimalNumbers : integer);
  
  function RoundDoubleToStandardPrecision (const aValue : double) : double;
  
  
negative.code:   Result := (not DoublesAreEqual(aValue1, aValue2)) and (aValue1 < aValue2);
  end;
  
  function DoubleIsLessThan(const aValue1, aValue2: double; const aFloatingPointDigits: integer): boolean;
  begin
    Result := (not DoublesAreEqual(aValue1, aValue2, aFloatingPointDigits)) and (aValue1 < aValue2);
  end;
  
  function DoubleIsLessOrEqual(const aValue1, aValue2: double): boolean;
  