ut2
Version:
一个现代 JavaScript 实用工具库。[点击查看在线文档]。
24 lines (20 loc) • 794 B
JavaScript
;
var isFinite = require('../isFinite.js');
var toInteger = require('../toInteger.js');
var toNumber = require('../toNumber.js');
var toString = require('../toString.js');
var native = require('./native.js');
function decimalAdjust(type, value, precision) {
if (precision === void 0) { precision = 0; }
var func = Math[type];
value = toNumber(value);
precision = native.mathMin(toInteger(precision), 292);
if (precision === 0 || !isFinite(value)) {
return func(value);
}
var pair = toString(value).split('e');
value = func(+(pair[0] + 'e' + (pair[1] ? +pair[1] + precision : precision)));
pair = toString(value).split('e');
return +(pair[0] + 'e' + (pair[1] ? +pair[1] - precision : -precision));
}
module.exports = decimalAdjust;