anchor.diff:  begin
     if aValue.NotNull then
       Self.Add(aValue.Value);
  +end;
  +
  +procedure TNullableDouble.Subtract(const aValue: double);
  +begin
  +  if Self.IsNull then
  +    Self.SetValue(-1 * aValue)
  +  else
  +    Self.SetValue(Self.Value - aValue);
  +end;
  +
  +procedure TNullableDouble.Subtract(const aValue: TNullableDouble);
  +begin
  +  if aValue.NotNull then
  +    Self.Subtract(aValue.Value);
   end;
   
   class function TNullableDouble.StringToVariant(const aValue: String): Variant;
  
positive.code:     procedure Add(const aValue : double); overload;
      procedure Add(const aValue : TNullableDouble); overload;
  
      class function StringToVariant(const aValue: String): Variant;
      class function VariantToString(const aValue: Variant; const aDisplayFormat : string): String;
  
  
negative.code: 
      procedure Add (const aValue : integer); overload;
      procedure Add (const aValue : TNullableInteger); overload;
  
      procedure Subtract (const aValue : integer); overload;
      procedure Subtract (const aValue : TNullableInteger); overload;
  
      class function StringToVariant(const aValue : String) : Variant;
      class function VariantToString(const aValue : Variant) : String;
  