如何检测给定数字是否为整数?

jir*_*kap 27 javascript numbers

如何测试变量以确定它是否包含数字,它是一个整数?

例如

if (1.589 == integer) // false
if (2 == integer) // true
Run Code Online (Sandbox Code Playgroud)

有线索吗?

Chr*_*oph 54

num % 1 === 0
Run Code Online (Sandbox Code Playgroud)

这将转换numNumberfirst 类型,因此任何可以转换为整数的值都将通过测试(例如'42',true).

如果您想要排除这些,请另外检查

typeof num === 'number'
Run Code Online (Sandbox Code Playgroud)

你也parseInt()可以这样做,即

parseInt(num) == num
Run Code Online (Sandbox Code Playgroud)

对于无类别的支票和

parseInt(num) === num
Run Code Online (Sandbox Code Playgroud)

对于打印的支票.

请注意,测试不等效:检查via parseInt()将首先转换为String,因此例如true不会通过检查.

另请注意,无类型检查通道parseInt()将正确处理十六进制字符串,但对于八进制(即具有前导零的数字字符串)将失败,因为这些字符串被识别parseInt()但未被识别Number().如果需要使用前导零处理十进制字符串,则必须指定radix参数.


Ran*_*tor 10

这有效:

if (Math.floor(x) == x)
Run Code Online (Sandbox Code Playgroud)


Dan*_*Dan 6

有人已经为你做了.


小智 5

您可以使用整数的正式定义:

Math.floor(x) === x
Run Code Online (Sandbox Code Playgroud)