docs: function(value, options){
          var typeVal = typeof value;
          
          // if we already have a number that's not NaN, return it unaltered
          if(typeVal === 'number' && !isNaN(value)) return value;
          
          // otherwise, try do a conversion
          var numVal = NaN;
          if(typeVal === 'string' || typeVal === 'boolean'){
              numVal = Number(value);
          }
          
          // return as appropriate, perhaps converting NaN to zero
          if(validate.isObject(options) && options.NaNToZero && isNaN(numVal)){
              return 0;
          }
          return numVal;
      }