anchor.diff:    }
   
     String _convertInteger(num value) {
  -    final digits = _intDigits(value.abs().truncate());
  +    final digits = _intDigits(value.abs().truncate(), _base);
       return _convertIntegerDigits(digits);
     }
   
  -  String _convertIntegerDigits(List<int> digits) {
  -    var result = _formatDigits(digits);
  -    if (_separator != null) {
  -      result = _separateRight(result, _separator);
  -    }
  -    if (_digits != null && _padding != null) {
  -      result = result.padLeft(_digits, _padding);
  -    }
  -    return result;
  +  String _convertIntegerDigits(Iterable<int> digits) {
  +    final result = _formatDigits(digits, _characters);
  +    return _separator == null ? result : _separateRight(result, _separator);
     }
   
     String _convertFloat(num value) {
  
positive.code:   /// The delimiter to separate the integer and fraction part of the number.
    final String _delimiter;
  
    /// The number of digits to be printed in the integer part.
    final int _digits;
  
    /// The string that should be displayed if the number is infinite.
    final String _infinity;
  
    /// The string that should be displayed if the number is not a number.
    final String _nan;
  
    /// The padding for the integer part.
    final String _padding;
  
    /// The number of digits to be printed in the fraction part.
    final int _precision;
  
negative.code:   /// The separator character to be used to group digits.
    final String _separator;
  
    FixedNumberPrinter(
        this._accuracy,
        this._base,
        this._characters,
        this._delimiter,
        this._infinity,
        this._nan,
        this._precision,
        this._sign,
        this._separator);
  
    @override
  