code: function ( obj, precision, total ) {
  		var result = [],
  		    custom = false,
  		    last, padding, sum;
  
  		precision = precision || 0;
  		
  		if ( total === undefined ) {
  			total = array.sum( obj );
  		}
  		else {
  			custom = true;
  		}
  
  		array.each( obj, function ( i ) {
  			result.push( number.parse( ( ( i / total ) * 100 ).toFixed( precision ) ) );
  		} );
  
  		// Dealing with the awesomeness of JavaScript "integers"
  		if ( !custom ) {
  			sum = array.sum( result );
  
  			if ( sum < 100 ) {
  				padding = number.parse( number.diff( sum, 100 ).toFixed( precision ) );
  				last    = array.last( result ) + padding;
  				result[result.length - 1] = last;
  			}
  			else if ( sum > 100 ) {
  				padding = number.parse( number.diff( sum, 100 ).toFixed( precision ) );
  				last    = number.parse( ( array.last( result ) - padding ).toFixed( precision ) );
  				result[result.length - 1] = last;
  			}
  		}
  
  		return result;
  	}
docs: Creates an Array of percentages from an Array of Numbers (ints/floats)
  
  @method percents
  @param  {Array}  obj       Array to iterate
  @param  {Number} precision [Optional] Rounding precision
  @param  {Number} total     [Optional] Value to compare against
  @return {Array}            Array of percents