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.66.0 ./node_modules/lodash/_createRound.js
appmap-0.65.1 ./node_modules/lodash/_createRound.js
appmap-0.65.0 ./node_modules/lodash/_createRound.js
trusty-cms-4.3.4 node_modules/lodash/_createRound.js
appmap-0.64.0 ./node_modules/lodash/_createRound.js
appmap-0.63.0 ./node_modules/lodash/_createRound.js
jekyll-esm-0.0.3 node_modules/lodash/_createRound.js
trusty-cms-4.3.3 node_modules/lodash/_createRound.js
trusty-cms-4.3.2 node_modules/lodash/_createRound.js
trusty-cms-4.3.1 node_modules/lodash/_createRound.js
boring_generators-0.11.0 tmp/templates/app_template/node_modules/lodash/_createRound.js
trusty-cms-4.3 node_modules/lodash/_createRound.js
boring_generators-0.10.0 tmp/templates/app_template/node_modules/lodash/_createRound.js
trusty-cms-4.2.3 node_modules/lodash/_createRound.js
boring_generators-0.9.0 tmp/templates/app_template/node_modules/lodash/_createRound.js
tang-0.2.1 spec/tang_app/node_modules/lodash/_createRound.js
trusty-cms-4.2.2 node_modules/lodash/_createRound.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/lodash/_createRound.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/lodash/_createRound.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/lodash/_createRound.js