function getUpperBound(num) { //如果是负数则先转正 let isPositive = num > 0; //转科学计数 let scientificNotation = num.toExponential(); //截取前后两段备用 let [a, b] = scientificNotation.split('e'); //前面半段往5的倍数靠 let upperBound = Math.ceil(Number(a *(isPositive?1:(-1)) / 5)) * 5 * (isPositive?1:(-1)); //再乘回原来的量级 return parseFloat(upperBound + 'e' + b); } console.log(getUpperBound(-703));