Sha256: 9e1772f078d63ae37ecd3f6b07f0fa2f1292b405eff4cf474dfb0c2548fc0965

Contents?: true

Size: 808 Bytes

Versions: 46

Compression:

Stored size: 808 Bytes

Contents

// Credit:
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
// #Decimal_rounding

"use strict";

var isValue       = require("../object/is-value")
  , ensureInteger = require("../object/ensure-integer");

var split = String.prototype.split;

module.exports = function (type) {
	return function (value/*, exp*/) {
		value = Number(value);
		var exp = arguments[1];
		if (isValue(exp)) exp = ensureInteger(exp);
		if (!value) return value;
		if (!exp) return Math[type](value);
		if (!isFinite(value)) return value;

		// Shift
		var tokens = split.call(value, "e");
		value = Math[type](tokens[0] + "e" + ((tokens[1] || 0) - exp));

		// Shift back
		tokens = value.toString().split("e");
		return Number(tokens[0] + "e" + (Number(tokens[1] || 0) + exp));
	};
};

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-18.0.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.21.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.20.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.19.1 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.19.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.18.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.17.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.16.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.15.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.14.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.13.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.12.2 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.12.1 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.12.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.11.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.10.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.9.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.8.0 node_modules/es5-ext/math/_decimal-adjust.js
govuk_publishing_components-17.7.0 node_modules/es5-ext/math/_decimal-adjust.js