anchor.diff:      procedure Assign(const aValue : Variant); override; overload;
   
       function CheckIfDifferentAndAssign(const aValue : Variant) : boolean; override;
  -    function AsVariant : Variant; override;
  -    function AsString : String;
  +    function AsVariant: Variant; override;
  +    function AsString: String;
  +    function AsFormattedString (aFormat: String): String;
   
       class function StringToVariant(const aValue : String) : Variant;
       class function VariantToString(const aValue : Variant) : String;
  
positive.code: 
      function AsString : String;
      function AsFloat : Double;
  
      property Value : Double read GetValue write SetValue;
      property Digits : byte read FDigits write SetDigits;
  
negative.code:     Result := Self.Value;
  end;
  
  function TNullableDouble.AsFormattedString(aFormat: String): String;
  begin
    if Self.IsNull then
      Result := ''
    else
      Result := FormatFloat(aFormat, Self.Value);
  end;
  
  { TNullableAnsiString }
  (*
  function TNullableAnsiString.GetValue: AnsiString;
  