chopcal
Version:
29 lines (23 loc) • 2.28 kB
JavaScript
/**
* Chop to round.
* @function round
* @param {number} value - Value to calc.
* @param {number} [base=1] - Base number.
* @returns {number} - Round number.
*/
;
var surplus = require('./surplus');
/** @lends round */
function round(value, base) {
base = base || 0;
var surplused = surplus(value, base);
var result = value - surplused;
var enough = base / 2 < surplused;
if (enough) {
result += base;
}
var weight = 1 / base;
return parseInt(result * weight) / weight;
}
module.exports = round;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvdW5kLmpzIl0sIm5hbWVzIjpbInN1cnBsdXMiLCJyZXF1aXJlIiwicm91bmQiLCJ2YWx1ZSIsImJhc2UiLCJzdXJwbHVzZWQiLCJyZXN1bHQiLCJlbm91Z2giLCJ3ZWlnaHQiLCJwYXJzZUludCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0FBT0E7O0FBRUEsSUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUF2QjtBQUVBOzs7QUFDQSxTQUFTQyxLQUFULENBQWdCQyxLQUFoQixFQUF1QkMsSUFBdkIsRUFBNkI7QUFDM0JBLEVBQUFBLElBQUksR0FBR0EsSUFBSSxJQUFJLENBQWY7QUFDQSxNQUFJQyxTQUFTLEdBQUdMLE9BQU8sQ0FBQ0csS0FBRCxFQUFRQyxJQUFSLENBQXZCO0FBQ0EsTUFBSUUsTUFBTSxHQUFHSCxLQUFLLEdBQUdFLFNBQXJCO0FBQ0EsTUFBSUUsTUFBTSxHQUFJSCxJQUFJLEdBQUcsQ0FBUixHQUFhQyxTQUExQjs7QUFDQSxNQUFJRSxNQUFKLEVBQVk7QUFDVkQsSUFBQUEsTUFBTSxJQUFJRixJQUFWO0FBQ0Q7O0FBQ0QsTUFBSUksTUFBTSxHQUFHLElBQUlKLElBQWpCO0FBQ0EsU0FBT0ssUUFBUSxDQUFDSCxNQUFNLEdBQUdFLE1BQVYsQ0FBUixHQUE0QkEsTUFBbkM7QUFDRDs7QUFFREUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCVCxLQUFqQiIsInNvdXJjZVJvb3QiOiIuLi8uLi9saWIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENob3AgdG8gcm91bmQuXG4gKiBAZnVuY3Rpb24gcm91bmRcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFZhbHVlIHRvIGNhbGMuXG4gKiBAcGFyYW0ge251bWJlcn0gW2Jhc2U9MV0gLSBCYXNlIG51bWJlci5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IC0gUm91bmQgbnVtYmVyLlxuICovXG4ndXNlIHN0cmljdCdcblxuY29uc3Qgc3VycGx1cyA9IHJlcXVpcmUoJy4vc3VycGx1cycpXG5cbi8qKiBAbGVuZHMgcm91bmQgKi9cbmZ1bmN0aW9uIHJvdW5kICh2YWx1ZSwgYmFzZSkge1xuICBiYXNlID0gYmFzZSB8fCAwXG4gIGxldCBzdXJwbHVzZWQgPSBzdXJwbHVzKHZhbHVlLCBiYXNlKVxuICBsZXQgcmVzdWx0ID0gdmFsdWUgLSBzdXJwbHVzZWRcbiAgbGV0IGVub3VnaCA9IChiYXNlIC8gMikgPCBzdXJwbHVzZWRcbiAgaWYgKGVub3VnaCkge1xuICAgIHJlc3VsdCArPSBiYXNlXG4gIH1cbiAgbGV0IHdlaWdodCA9IDEgLyBiYXNlXG4gIHJldHVybiBwYXJzZUludChyZXN1bHQgKiB3ZWlnaHQpIC8gd2VpZ2h0XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcm91bmRcbiJdfQ==