狄烁STEC的试验场

hello earth

导航

判断非负整数

今天群里讨论高效判断值为非负整数,司徒正美整理了一些算法,见"判定是否为非负整数"。

我也想了3个算法

function(n) {
    return ( n << 1 >>> 1 === n );
    // 没有考虑到大于int32最大正整数的情况
},
function(n) {
    return ( +n === n && n >= 0 );
    // 没有考虑到小数的情况-_-!
},
function(n) {
    return ( parseInt(n) === n && n >= 0 );
    // 貌似只有这个靠谱
},

全部算法测试:http://dishuostec.sinaapp.com/javascript/jasmine/nonnegative_integer/test.html

最终只有这个靠谱

function(n) {
    return ( parseInt(n) === n && n >= 0 );
}

结果截图

posted on 2012-04-09 18:25  狄烁STEC  阅读(332)  评论(0编辑  收藏  举报