js除法取整

JavaScript018

js除法取整,第1张

1.取整

// 丢弃小数部分,保留整数部分

parseInt(5/2)// 2

2.向上取整

// 向上取整,有小数就整数部分加1

Math.ceil(5/2)// 3

3.向下取整

// 向下取整,丢弃小数部分

Math.floor(5/2)// 2

4四舍五入

// 四舍五入

Math.round(5/2)// 3

第一种方法,编写两个方法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

}

}

看了下你的代码,我想你可能是要下边的结果吧,希望对你有用:

<input id="jiage" size="5" /> * 

<input id="number" size="5" /> = 

<input id="sum_money" size="10" readonly="readonly" /> <script type="text/javascript">

void function(){

var g = function(d){return document.getElementById(d)},

ID0=g("jiage"), ID1=g("number"), n=g("sum_money")

//响应前两个文本框的键盘事件,而无需使用setTimeout来一直计算

ID0.onkeyup = ID1.onkeyup = function(){

var str0=ID0.value, str1=ID1.value

if (str0=='' || str1=='')

{//只有两个输入框都有输入时才做计算

return n.value=""

}

if (parseFloat(str0) != str0 || parseFloat(str1) != str1)

{//判断输入的两个值是否为数字 (可以为小数,如只允许整数,此处用parseInt)

return n.value="错误输入"

}

//对计算结果取整数,并输出到第三个文本框中。

n.value=parseInt(str0*str1)

}

}()

</script>