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

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

当前回答

parseInt(yourNumber)=== parseFloat(yourNumber)

其他回答

比较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

任何小数点为零的浮点数(例如1.0、12.00、0.0)都隐式转换为整数,因此无法检查它们是否为浮点数。

const integerCheck = (num) => {
        const isInt = (n) => Number(n) === n && n % 1 === 0
        const isFloat = (n) => Number(n) === n && n % 1 !== 0
        return (isInt(num) || !isFloat(num))        
}
console.log( integerCheck('23.3') );

YourJS提供了以下两个函数,这些函数适用于所有数字,包括为Infinity和Infinity返回false:

function isFloat(x) {
  return typeOf(x, 'Number') && !!(x % 1);
}

function isInt(x) {
  return typeOf(x, 'Number') && x % 1 == 0;
}

由于typeOf()是一个YourJS内部函数,如果你想使用这些定义,你可以在这里下载这些函数的版本:http://yourjs.com/snippets/build/34

在java脚本中,所有数字都是内部64位浮点,与java中的double相同。javascript中没有不同的类型,所有类型都由类型号表示。因此,您将无法进行检查实例。然而,你可以使用上面给出的解来确定它是否是一个分数。java脚本的设计者认为,只要使用一种类型,就可以避免大量的类型转换错误。