varroot=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. */varnativeIsFinite=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. */functioncreateRound(methodName){varfunc=Math[methodName];returnfunction(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.varpair=(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));}returnfunc(number);};}module.exports=createRound;