//获取两个数的倍数,返回倍数
function getIntegerTimes(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(".",""))
return (r1/r2)*pow(10,t2-t1)
}
//判断是否为正整数,返回true或false
function isPositiveIntegerTimes(arg) {
var num = arg.toString()
if (!(/(^[1-9]\d*$)/.test(num))) {
return false
}else {
return true
}
}
第二种方法,就是单一方法isPositiveIntegerTimes(),判断两个数(包含小数)是否整除
//判断两个数的是否为整数倍,返回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
}
}
a是字符串,怎么能运算呢?用parseFloat将字符串转化为浮点数再进行计算。具体修改如下:
var a = "62223.56"
var c = parseFloat(a) % 10000
浮点型在内存中并不一定就是按照想想中那样保存的。
多多少少会有不同。不如说0.23在内存中可能是以0.222222222229的形式保存的。或者是以0.230000000000000001的形式保存的。这种现象目前我还不知道怎么避免。但是用浮点型有可能就会产生这样的结果。