我在 JavaScript 中寻找一种简单的方法来检查一个数字是否有小数位(以确定它是否为整数)。例如,
23 -> OK
5 -> OK
3.5 -> not OK
34.345 -> not OK
if(number is integer) {...}
我在 JavaScript 中寻找一种简单的方法来检查一个数字是否有小数位(以确定它是否为整数)。例如,
23 -> OK
5 -> OK
3.5 -> not OK
34.345 -> not OK
if(number is integer) {...}
使用模数将起作用:
num % 1 != 0
// 23 % 1 = 0
// 23.5 % 1 = 0.5
请注意,这是基于数字值的数量,不论格式。它将包含带有固定小数点的整数的数字字符串与整数相同:
'10.0' % 1; // returns 0
10 % 1; // returns 0
'10.5' % 1; // returns 0.5
10.5 % 1; // returns 0.5
Number.isInteger(23); // true
Number.isInteger(1.5); // false
Number.isInteger("x"); // false:
Number.isInteger()是 ES6 标准的一部分,在 IE11 中不受支持。
它为和非数字参数返回 false NaN
,Infinity
同时x % 1 != 0
返回 true。
或者您可以使用它来确定它是否不是小数:
string.indexOf(".") == -1;
简单,但有效!
Math.floor(number) === number;
最常见的解决方案是去除数字的整数部分并将其与零进行比较,如下所示:
function Test()
{
var startVal = 123.456
alert( (startVal - Math.floor(startVal)) != 0 )
}