0

isInt(1.00000)falseを返す必要があります。1.000 を int ではなく float として検出する必要があります。これはまだ可能ですか?

多くの人々がisInt()機能を生み出してきました。ただし、浮動小数点数ではなく、常に整数として検出し1.0ます。isInt()1.0000を入力すると、成功すると false が返されます。1.01しかし、それ1.00は0以上で失敗します:Dこれを解決するにはどうすればよいですか? それとも仕方がない

function isInt(i) {
    if ( i.toFixed ) {
        if ( i % 1 === 0 ) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}

他の関数と同様に、成功すると 1.03 では false が返されますが、1.00000 以上では失敗します。私の計画:

function isInt(i) {
    if ( i.toFixed ) {
        if ( i % 1 === 0 ) {
            /** the plan, but sure, it fails
            i = i.toString().split('.');
            if ( i.length > 1 ) {
                return false;
            } else {
                return true;
            }
            **/
        } else {
            return false;
        }
    } else {
        return false;
    }
}
4

3 に答える 3

-2

正規表現を使用できます

function isInt(value){
    if( String(value).search(/^-?\d+$/) != -1 ){
        return true;
    } else {
        return false;
    }
}
于 2013-08-08T13:42:12.920 に答える
-3
function isInt(i){
    return String(i).match(/^\d*$/) != null;
}

入力が数字以外で構成されている場合、これは false を返します。

isInt(123) --> true
isInt('a') --> false
isInt(123.1) --> false
于 2013-08-08T13:42:21.343 に答える