anchor.diff:              Iterable<Match> matches = exp.allMatches(string);
               var i = 0;
               var List = collection.getList();
  -            for(var m in matches) {
  +
  +            for (var m in matches) {
                   String match = m.group(0);
                   if (match == "%s" || match == "% s")
                       List[i] = List[i].toString();
  -                if ((match == "%d" || match == "% d") && List[i] is bool){
  -                    if (List[i])
  -                        List[i] = 1;
  +                if (match == "%d" || match == "% d" || match == "%f" || match == "% f") {
  +                    if (List[i] is $PyBool)
  +                        (List[i] == true) ? List[i] = 1 : List[i] = 0;
                       else
  -                        List[i] = 0;
  +                        List[i] = List[i].value();
                   }
                   i++;
               }
               return new $PyString($sprintf(string, List));
  -        } else if(collection is $PyDict) {
  +        } else if (collection is $PyDict) {
               RegExp exp = new RegExp(r"%(\([a-zA-Z_]+\))*\s?[diuoxXeEfFgGcrs]");
               var List = [];
               Iterable<Match> matches = exp.allMatches(string);
  
positive.code:     var _value, type;
  
      $PyNum(value) {
          switch ($getType(value)) {
              case 6:
                  _value = value;
                  break;
  
negative.code: import "dart:collection";
  import "dart:math";
  import "sprintf.dart";
  
  class $PyFile {
      var handle;
  