我想要一个功能
NearestFive(3) --> 5
NearestFive(5) --> 0
NearestFive(6) --> 5
如果这是有道理的。我能想到的最好的是
function NearestFive ( x )
{
var r = x % 5;
if ( r == 0 ) return x;
else if ( r > 2 ) return x + 5 - r;
else return x - r;
}
但我想知道是否有可能整合这些步骤或引入bithift操作来提高效率?
例如,运行两个比较
r == 0
r > 2
r > 2
暗示r == 0
,因此可能没有必要。
答案 0 :(得分:5)
&round to to to to to to to to to to to to to to to to to to to to to是除以X,舍入到最接近的整数,然后再乘以X。
function NearestX(num, factor) {
return Math.round(num/factor)*factor;
}
这甚至适用于舍入到最近的小数部分(例如,最接近的0.1)
答案 1 :(得分:0)
根据您的浏览器,这可以快速运行:
RSQuoteViewController
在我的浏览器中,效果与RSQuote.fetchQuote()
相同,但两者都明显快于您在问题中发布的版本。