如何发现一个数字是浮点数或整数?
1.25 --> float
1 --> integer
0 --> integer
0.25 --> float
如何发现一个数字是浮点数或整数?
1.25 --> float
1 --> integer
0 --> integer
0.25 --> float
当前回答
我们可以通过isInteger函数进行检查。ie number将返回true,float返回false
console.log(Number.isIInteger(2)),<BR>将返回true
console.log(Number.isInteger(2.5))将返回false
其他回答
在java脚本中,所有数字都是内部64位浮点,与java中的double相同。javascript中没有不同的类型,所有类型都由类型号表示。因此,您将无法进行检查实例。然而,你可以使用上面给出的解来确定它是否是一个分数。java脚本的设计者认为,只要使用一种类型,就可以避免大量的类型转换错误。
当除以1时检查余数:
function isInt(n) {
return n % 1 === 0;
}
如果你不知道参数是一个数字,你需要两个测试:
function isInt(n){
return Number(n) === n && n % 1 === 0;
}
function isFloat(n){
return Number(n) === n && n % 1 !== 0;
}
2019年更新在这个答案写出来5年后,一个解决方案在ECMA脚本2015中被标准化。这个答案涵盖了这个解决方案。
您可以使用Number.isInteger()方法通过对数字进行除法来检查数字是整数还是浮点数,例如:
function isNumberFloatOrInteger(a, b){
if(Number.isInteger(a / b)){
return true;
}
else{ return false };
}
注意:isInteger()与internet explorer不兼容。
这可能不如%answer的性能好,它可以防止您首先转换为字符串,但我还没有看到任何人发布它,所以这里有另一个选项应该可以正常工作:
function isInteger(num) {
return num.toString().indexOf('.') === -1;
}
比较floor()结果与ceil()结果不同。
const isFloat = v => Math.floor(v) !== Math.ceil(v);
> isFloat(1)
= false
> isFloat(1.1)
= true
> isFloat(42)
= false
> isFloat(84.42)
= true