createRound.js 774 Bytes
define([], function() {

  /** Used as a safe reference for `undefined` in pre-ES5 environments. */
  var undefined;

  /** Native method references. */
  var pow = Math.pow;

  /**
   * Creates a `_.ceil`, `_.floor`, or `_.round` function.
   *
   * @private
   * @param {string} methodName The name of the `Math` method to use when rounding.
   * @returns {Function} Returns the new round function.
   */
  function createRound(methodName) {
    var func = Math[methodName];
    return function(number, precision) {
      precision = precision === undefined ? 0 : (+precision || 0);
      if (precision) {
        precision = pow(10, precision);
        return func(number * precision) / precision;
      }
      return func(number);
    };
  }

  return createRound;
});