检查一个数字是否有小数位/是整数

480

我正在寻找一种在JavaScript中轻松检查数字是否有小数位(以确定它是否为整数)的方法。例如,

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

0
你可以使用这个:
bool IsInteger() {
    if (num.indexOf(".") != -1) // a decimal
    {
        return Math.ceil(num) == Math.floor(num); // passes for 1.0 as integer if thats the intent.
    }
    return Number.isSafeInteger(num);
}

检查数字是整数还是小数。


0
也许这对你有用?
它使用正则表达式来检查数字中是否有逗号,如果没有,则添加逗号和条纹。
var myNumber = '50';
function addCommaStripe(text){
    if(/,/.test(text) == false){
        return text += ',-';
    } else {
        return text;
    }
}
myNumber = addCommaStripe(myNumber);

欢迎来到StackOverflow。您能详细解释一下这段代码是做什么的,以及您认为它为什么能解决问题吗? - quinz
@quinz 它使用正则表达式检查数字中是否有逗号,如果没有,则会添加逗号和斑纹。因此,它完成了问题的要求,并添加了圆整价格标签的格式化功能。 - user11608734
耶稣啊,正则表达式无处不在,我想自杀,为什么我要成为开发者。 - Jaacko Torus

0

使用Number.isInteger(num)可以帮助检查哪些数字算作整数,哪些不算。

例如:

let num1 = 6.0000000000000001; // 16 decimal places
let num2 = 6.000000000000001; // 15 decimal places

Number.isInteger(num1); // true, because of loss of precision

// while:
Number.isInteger(num2); // false

所以,在我看来,如果你需要知道一个数学上的整数是什么,使用Number.isInteger()比其他建议的方法更安全。


-1

用于检查数字是十进制还是整数的函数

function IsDecimalExist(p_decimalNumber) {
    var l_boolIsExist = true;

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

    return l_boolIsExist;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接