如何发现一个数字是浮点数或整数?

1.25 --> float  
1 --> integer  
0 --> integer  
0.25 --> float

当前回答

2022年更新-我们可以简单地使用Number的方法。

检查整数或浮点:数字.is有限(val)

检查整数是否:数字.isInteger(val)

检查float(非整数):!Number.isInteger(val)&&Number.isFinite(val)

其他回答

可以使用简单的正则表达式:

function isInt(value) {

    var er = /^-?[0-9]+$/;

    return er.test(value);
}

或者,您也可以根据需要使用以下功能。它们由PHPJS项目开发。

is_int()=>检查变量类型是否为整数,其内容是否为整数

is_float()=>检查变量类型是否为float,其内容是否为floate

ctype_digit()=>检查变量类型是否为字符串,以及其内容是否只有小数位数

更新1

现在它也检查负数,感谢@ChrisBartley的评论!

尝试这些函数来测试一个值是否是一个没有小数部分的数字基元值,并且在可以表示为精确整数的大小范围内。

function isFloat(n) {
    return n === +n && n !== (n|0);
}

function isInteger(n) {
    return n === +n && n === (n|0);
}

以下是我对整数的用法:

Math.ceil(parseFloat(val)) === val

很短,很好:)一直工作。如果我没弄错的话,这就是大卫·弗拉纳根的建议。

试试这个

let n;
return (n = value % 1) !== 0 && !isNaN(n);

当返回值为false时,表示输入值为浮点数或浮点数字符串,否则输入值为整数numref或整数字符串。

基本上,它需要检查精度值是否不等于零。

另一个是检查正确的字符串编号。

这是我的:

function isInt(quale) {
    var valore = $('#'+quale).val().toLowerCase();
    if (isNaN(Number(String(valore))) || (valore.indexOf("e") > 0)) {
        // Not int
    } else {
        // Is Int!
    }
}

还有这个:

function isFloat(quale) {
   var valore = $('#'+quale).val();
   valore = valore.replace(",", "");
   if (isNaN(String(valore)) || (valore.indexOf("e") > 0)) {
    // Not Float
   } else {
    // Float
   }
}

Ad majora!