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