Sha256: 09b84d1712b210ec6408eebb5d2f3a72f728c5e9ce7c9f86f621ad81a5d02bd1

Contents?: true

Size: 1.17 KB

Versions: 173

Compression:

Stored size: 1.17 KB

Contents

var root = require('./_root'),
    toInteger = require('./toInteger'),
    toNumber = require('./toNumber'),
    toString = require('./toString');

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeIsFinite = root.isFinite,
    nativeMin = Math.min;

/**
 * Creates a function like `_.round`.
 *
 * @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) {
    number = toNumber(number);
    precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
    if (precision && nativeIsFinite(number)) {
      // Shift with exponential notation to avoid floating-point issues.
      // See [MDN](https://mdn.io/round#Examples) for more details.
      var pair = (toString(number) + 'e').split('e'),
          value = func(pair[0] + 'e' + (+pair[1] + precision));

      pair = (toString(value) + 'e').split('e');
      return +(pair[0] + 'e' + (+pair[1] - precision));
    }
    return func(number);
  };
}

module.exports = createRound;

Version data entries

173 entries across 172 versions & 20 rubygems

Version Path
condenser-0.3 lib/condenser/processors/node_modules/lodash/_createRound.js
ilog-0.4.1 node_modules/lodash/_createRound.js
ilog-0.4.0 node_modules/lodash/_createRound.js
ilog-0.3.3 node_modules/lodash/_createRound.js
condenser-0.2 lib/condenser/processors/node_modules/lodash/_createRound.js
condenser-0.1 lib/condenser/processors/node_modules/lodash/_createRound.js
condenser-0.0.12 lib/condenser/processors/node_modules/lodash/_createRound.js
condenser-0.0.11 lib/condenser/processors/node_modules/lodash/_createRound.js
condenser-0.0.10 lib/condenser/processors/node_modules/lodash/_createRound.js
condenser-0.0.9 lib/condenser/processors/node_modules/lodash/_createRound.js
condenser-0.0.8 lib/condenser/processors/node_modules/lodash/_createRound.js
learn_create-0.0.22 lib/templates/javascript_lab_template/node_modules/lodash/_createRound.js
jester-data-8.0.0 node_modules/lodash/_createRound.js
ezii-os-5.2.1 node_modules/lodash/_createRound.js
ezii-os-2.0.1 node_modules/lodash/_createRound.js
ezii-os-1.1.0 node_modules/lodash/_createRound.js
ezii-os-1.0.0 node_modules/lodash/_createRound.js
condenser-0.0.7 lib/condenser/processors/node_modules/lodash/_createRound.js
ezii-os-0.0.0.1.0 node_modules/lodash/_createRound.js
ezii-os-0.0.0.0.1 node_modules/lodash/_createRound.js