anchor.diff:  
       // Checks if the NewScale value is a valid scale value. If so, simply returns NewScale.
       class function RangeCheckedScale(NewScale: Int32): Integer; static;
  -
  -    // Sets default precision, and if it changed, notifies listeners.
  -    class procedure SetDefaultPrecision(Value: Integer); static;
  -
  -    // Sets default rounding mode, and if it changed, notifies listeners.
  -    class procedure SetDefaultRoundingMode(Value: RoundingMode); static;
   
       // Only allows 'e' or 'E' as exponent delimiter for scientific notation output.
       class procedure SetExponentDelimiter(const Value: Char); static;
  
positive.code:     // -- Class properties --
  
      /// <summary>The rounding mode to be used if no specific mode is given.</summary>
      class property DefaultRoundingMode: RoundingMode read FDefaultRoundingMode write SetDefaultRoundingMode;
  
      /// <summary>The (maximum) precision to be used for e.g. division if the operation would otherwise result in a
      /// non-terminating decimal expansion, i.e. if there is no exact representable decimal result, e.g. when
      /// dividing <code>     BigDecimal(1) / BigDecimal(3) (= 0.3333333...)</code></summary>
      class property DefaultPrecision: Integer read FDefaultPrecision write SetDefaultPrecision;
  
      /// <summary>The string to be used to delimit the exponent part in scientific notation output.</summary>
      /// <remarks>Currently, only 'e' and 'E' are allowed. Setting any other value will be ignored. The default is 'e',
  
negative.code:   Result.FScale := NewScale;
  end;
  
  class procedure BigDecimal.SetExponentDelimiter(const Value: Char);
  begin
    if (Value = 'e') or (Value = 'E') then
  