如何检查一个数字是浮点数还是整数?

如何发现一个数字是 "浮动 "还是 "整数"?

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

试着用这些函数来测试一个值是否是一个没有小数部分的数字原值,并且在可以表示为精确整数的大小限制之内。

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

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

正如其他人提到的,你在JS中只有双数。那么你如何定义一个数字是一个整数呢?只要检查四舍五入后的数字是否等于自己就可以了。

function isInteger(f) {
    return typeof(f)==="number" && Math.round(f) == f;
}
function isFloat(f) { return typeof(f)==="number" && !isInteger(f); }
评论(3)

这真的取决于你想达到什么目的。如果你想 "模仿 "强类型语言,我建议你不要尝试。正如其他人提到的,所有的数字都有相同的表示方法(相同的类型)。

使用像Claudiu提供的东西。

isInteger( 1.0 ) -> true

这在常识上看起来很好,但在像C语言中,你会得到false

评论(0)