📅  最后修改于: 2023-12-03 15:32:23.352000             🧑  作者: Mango
有时候在开发中需要将数字进行四舍五入到指定的数字,而在某些情况下需要将数字四舍五入到每15。 在这种情况下,我们可以使用内置Math.round()函数来实现。
function roundToMultipleOf15(num) {
return Math.round(num / 15) * 15;
}
console.log(roundToMultipleOf15(7)); // 0
console.log(roundToMultipleOf15(15)); // 15
console.log(roundToMultipleOf15(27)); // 30
console.log(roundToMultipleOf15(38)); // 45
上述代码中的roundToMultipleOf15函数将数字四舍五入到每15。我们首先将传递的数字除以15,然后将结果四舍五入并乘以15即可。在上面给出的示例中,7将被四舍五入为0,15将保持为15,27将被四舍五入为30,38将被四舍五入为45。
function roundToMultipleOf15(num) {
return (num + 7.5) & ~0xF;
}
console.log(roundToMultipleOf15(7)); // 0
console.log(roundToMultipleOf15(15)); // 15
console.log(roundToMultipleOf15(27)); // 30
console.log(roundToMultipleOf15(38)); // 45
上述代码中的roundToMultipleOf15函数使用位运算符与(&)和非(~)将数字四舍五入到每15。我们将传递的数字添加7.5,该值等于除以15的一半(15 / 2)。然后,我们使用与运算符(&)将结果的小数部分全部删除并将其舍入到15的倍数,而非运算符(~)将在此之后的位(小数部分)全部清除。
不推荐使用位运算的原因是代码的可读性降低了。但是,位运算比Math.round()函数执行得更快。