js中两个数相除 如何判断是整数还是小数

JavaScript020

js中两个数相除 如何判断是整数还是小数,第1张

第一种方法,编写两个方法getIntegerTimes(),isPositiveIntegerTimes()判断两个数(包含小数),先获取倍数,再判断倍数是否为正整数,好处就是两个方法都可以作为通用方法调用.实现功能多.

//获取两个数的倍数,返回倍数

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

}

}

3/2=1.5是整除 LZ你有病把 整除整除 当然都是整数啦 尼玛来个小数 还整出个毛哦

那照你的需求就是只要不是无限循环那都算是整除咯 这尼玛的真没法做了

如果类似于3/3=1 或者6/2=3这种的话

那就用if(6%2==0)来判断是否整除 你那种没法实现 这里是指余数为0

下面这个test函数可以用来判断:

function test(num){

    var n = num % 1000 / 100 | 0  //获取百位的数字

    return n % 3 === 0                  //判断百位数字是否可以被3整除

}

test(10) //return true

test(110) //return false

test(305) //return true

test(4911) // return true

test(4821) // return false

说明:

% : 整除运算, 7%3 = 1,  8%3=2, 9%3=0

/: 除法运算, 在js中, 4/2=2, 5/2=2.5, 5/3=1.6666666666666667

|: 位运算符, 可以用来取整, 2.4 | 0 =2,  2.6 | 0 = 2