整数推荐使用: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
文章评论