思路:
按照10的倍数等比例放大,然后取最接近放大后数 的整数,再将该整数按照10的倍数等比例缩小,即可获得保留后的数字。
因此可以根据Math.pow()和Math.round()实现上述逻辑
Math.pow() 函数返回基数(base)的指数(exponent)次幂,Math.pow(3,2)值为9;
Math.round() 函数返回一个数字四舍五入后最接近的整数,Math.round(23.458)值为23。
代码:
/**
* num: 待取舍数字
* precision:精度
*/
function getPrecision(num, precision) {
return parseFloat(
Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision)
)
}
示例:
const a = getPrecision(3.256987, 3)
console.log('a', a) // 3.257