docs: function zFloat() {
          return {
              restrict: 'A',
              require: 'ngModel',
  
              link: function(scope, elm, attr, ngModelCtrl) {
                  if (attr.type === 'radio' || attr.type === 'checkbox') return;
                  ngModelCtrl.$formatters.push(equivalenceFormatter);
  
                  function equivalenceFormatter(modelValue){
                     var viewValue = ngModelCtrl.$viewValue // could have used 'elm.val()'
                     return (+viewValue === +modelValue) ? viewValue : modelValue;
                  }
              }
          };
      }