我在JavaScript中寻找一种简单的方法来检查一个数字是否有小数点(以确定它是否为整数)。例如,

23 -> OK
5 -> OK
3.5 -> not OK
34.345 -> not OK
if(number is integer) {...}

当前回答

或者你可以用这个来判断它是不是小数:

string.indexOf(".") == -1;

其他回答

函数检查数字是十进制或整数

function IsDecimalExist(p_decimalNumber) {
    var l_boolIsExist = true;

    if (p_decimalNumber % 1 == 0)
        l_boolIsExist = false;

    return l_boolIsExist;
}

使用模可以工作:

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
function isWholeNumber(num) {
  return num === Math.round(num);
}

将数字字符串转换为数组,以小数点分割。然后,如果数组只有一个值,这意味着字符串中没有小数。

if(!number.split(".")[1]){
    //do stuff
}

这样你也可以知道整数和小数到底是什么。一个更高级的例子是。

number_to_array = string.split(".");
inte = number_to_array[0];
dece = number_to_array[1]; 

if(!dece){
    //do stuff
}

最常见的解决方案是去掉数字的整数部分,并将其与零进行比较,如下所示:

function Test()
{
     var startVal = 123.456
     alert( (startVal - Math.floor(startVal)) != 0 )
}