anchor.diff:    int _decimal = 0;
     bool _is_negative = false;
     bool _fraction_is_negative = false;
  +  bool _has_init = false;
  +	String _output = null;
   
     FloatFormatter(this._arg, var fmt_type, var options) : super(fmt_type, options) {
       if (_arg < 0) {
  
positive.code:       ret = ret.toUpperCase();
      }
  
      return ret;
    }
  
    String asFixed(int precision, {bool remove_trailing_zeros : true}) {
      String ret = _digits.sublist(0, _decimal).fold('', (i,e) => "${i}${e}");
      int offset = _decimal;
      int extra_zeroes = precision - (_digits.length - offset);
  
      if (!remove_trailing_zeros) {
        if (extra_zeroes > 0) {
          _digits.addAll(Formatter.get_padding(extra_zeroes, '0').split(''));
        }
        List<String> trailing_digits =  _digits.sublist(offset, offset + precision);
  
        var trailing_zeroes = trailing_digits.fold('', (i,e) => "${i}${e}");
        if (trailing_zeroes.length == 0) {
          return ret;
        }
        ret = "${ret}.${trailing_zeroes}";
      }
  
      return ret;
    }
  
negative.code:     if (extra_zeroes > 0) {
        _digits.addAll(Formatter.get_padding(extra_zeroes, '0').split(''));
      }
  		
  		_round(offset + precision, offset);
  		
      //print ("(${offset}, ${precision})${_digits}");
      List<String> trailing_digits =  _digits.sublist(offset, offset + precision);
     // print ("trailing_digits=${trailing_digits}");
      String _exp_str = _exponent.abs().toString();
  		
  		
      if (_exponent < 10 && _exponent > -10) {
        _exp_str = "0${_exp_str}";
      }
  