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:     if (extra_zeroes > 0) {
        _digits.addAll(Formatter.get_padding(extra_zeroes, '0').split(''));
      }
      //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}";
      }
  
negative.code: 
        } // else something wrong
      }
  	_has_init = true;
      //print("arg_str=${arg_str}");
      //print("decimal=${_decimal}, exp=${_exponent}, digits=${_digits}");
    }
  
    String asString() {
      String ret = '';
  		
  		if (!_has_init) {
  			return ret;
  		}
  		
  		if (_output != null) {
  			return _output;
  		}
  
      if (options['add_space'] && options['sign'] == '' && _arg >= 0) {
        options['sign'] = ' ';
  