在JavaScript中如何将整数四舍五入到最接近的百位?
方案1:最简内置方法实现
直接用JavaScript内置的Math.round方法就能一行搞定,完全不需要手动判断后两位:
let x = 890 const result = Math.round(x / 100) * 100 // 输出900 // 测试820的情况 Math.round(820 / 100) * 100 // 输出800
逻辑很简单:先把原数除以100缩放到个位级,用Math.round做标准四舍五入,再乘以100恢复到原来的数量级就行,刚好符合你要的整百四舍五入规则,正负整数都适配。
方案2:递归实现
如果需要用递归写法实现,也可以参考下面的代码:
function roundToHundred(num) { // 边界条件:当前数已经是整百,直接返回 if (num % 100 === 0) return num // 取十位数字判断是否需要进位 const tens = Math.floor(num / 10) % 10 return tens >= 5 ? roundToHundred(num + 10) : roundToHundred(num - 10) } // 测试 console.log(roundToHundred(890)) // 900 console.log(roundToHundred(820)) // 800 console.log(roundToHundred(850)) // 900
这个递归每次调整十位的数值,直到数值变成整百为止,满足递归实现要求。
内容的提问来源于stack exchange,提问作者Vikrant Bhat
相关产品推荐
相关产品推荐

