整数推荐使用a%b==0或者Number.isInteger(a/b)

有小数的推荐文章最下方方法,不然会有精度丢失问题,如0.1+0.2==0.3(false)。


//判断两个数的是否为整数倍,返回true或者false

function isPositiveIntegerTimes(arg1, arg2) {
    if (arg1 < arg2) {
        var flag = arg1;
        arg1 = arg2;
        arg2 = arg1;
    }
    var t1 = 0,
    t2 = 0,
    r1,
    r2;
    try {
        t1 = arg1.toString().split(".")[1].length
    } catch (e) {}
    try {
        t2 = arg2.toString().split(".")[1].length
    } catch (e) {}
    with (Math) {
        r1 = Number(arg1.toString().replace(".", ""));
        r2 = Number(arg2.toString().replace(".", ""));
        var times = (r1 / r2) * pow(10, t2 - t1);
        if (!(/(^[1-9]\d*$)/.test(times.toString()))) {
            return false;
        } else {
            return true;
        }
    }
}




原文连接:https://www.html.cn/qa/javascript/12169.html