Sha256: 09b84d1712b210ec6408eebb5d2f3a72f728c5e9ce7c9f86f621ad81a5d02bd1

Contents?: true

Size: 1.17 KB

Versions: 170

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

170 entries across 169 versions & 19 rubygems

Version Path
appmap-0.70.0 ./node_modules/lodash/_createRound.js
appmap-0.69.0 ./node_modules/lodash/_createRound.js
appmap-0.68.2 ./node_modules/lodash/_createRound.js
appmap-0.68.1 ./node_modules/lodash/_createRound.js
disco_app-0.15.2 test/dummy/node_modules/lodash/_createRound.js
appmap-0.68.0 ./node_modules/lodash/_createRound.js
appmap-0.67.1 ./node_modules/lodash/_createRound.js
trusty-cms-5.0.3 node_modules/lodash/_createRound.js
trusty-cms-5.0.2 node_modules/lodash/_createRound.js
appmap-0.67.0 ./node_modules/lodash/_createRound.js
disco_app-0.18.4 test/dummy/node_modules/lodash/_createRound.js
disco_app-0.18.1 test/dummy/node_modules/lodash/_createRound.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/lodash/_createRound.js
disco_app-0.14.0 test/dummy/node_modules/lodash/_createRound.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/lodash/_createRound.js
appmap-0.66.2 ./node_modules/lodash/_createRound.js
trusty-cms-5.0.1 node_modules/lodash/_createRound.js
trusty-cms-4.3.5 node_modules/lodash/_createRound.js
trusty-cms-5.0.0 node_modules/lodash/_createRound.js
appmap-0.66.1 ./node_modules/lodash/_createRound.js