js 如何实现加法?

JavaScript013

js 如何实现加法?,第1张

/**

** 加法函数,用来得到精确的加法结果

** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。

** 调用:accAdd(arg1,arg2)

** 返回值:arg1加上arg2的精确结果

**/function accAdd(arg1, arg2) {    var r1, r2, m, c   try {

r1 = arg1.toString().split(".")[1].length

}    catch (e) {

r1 = 0

}    try {

r2 = arg2.toString().split(".")[1].length

}    catch (e) {

r2 = 0

}

c = Math.abs(r1 - r2)

m = Math.pow(10, Math.max(r1, r2)) 

if (c >0) {        var cm = Math.pow(10, c)       if (r1 >r2) {

arg1 = Number(arg1.toString().replace(".", ""))

arg2 = Number(arg2.toString().replace(".", "")) * cm

} else {

arg1 = Number(arg1.toString().replace(".", "")) * cm

arg2 = Number(arg2.toString().replace(".", ""))

}

} else {

arg1 = Number(arg1.toString().replace(".", ""))

arg2 = Number(arg2.toString().replace(".", ""))

}    return (arg1 + arg2) / m

}//给Number类型增加一个add方法,调用起来更加方便。

Number.prototype.add = function

(arg) {    return accAdd(arg, this)

}

扩展资料

var a = 1, 

var b = 2, 

var c = a + b 

这样c得出来的解果是12,

使用Number()函数可以解决这个问题,如下 

var c = Number(a) + Number(b) 

这样c得出来的解果是3,

JavaScript Number() 函数对象的值转换为数字。

<script type="text/javascript">

var test1= new Boolean(true)

var test2= new Boolean(false)

var test3= new Date()

var test4= new String("999")

var test5= new String("999 888")

document.write(Number(test1)+ "<br />")

document.write(Number(test2)+ "<br />")

document.write(Number(test3)+ "<br />")

document.write(Number(test4)+ "<br />")

document.write(Number(test5)+ "<br />")</script>

//html

<input type="text" id="num1" value="" />

    <select id="mySelect">

        <option value="+">+</option>

        <option value="-">-</option>

        <option value="*">*</option>

        <option value="/">/</option>

    </select>

    <input type="text" id="num2" value="" />

    <input type="button" id="jisuan" value="计算" />

//js

<script>

    var oTxt1 = document.getElementById('num1')

    var oTxt2 = document.getElementById('num2')

    var oSelect = document.getElementById('mySelect')

    var oBtn = document.getElementById('jisuan')

    oBtn.onclick=function(){

        switch(oSelect.value){

            case '+':

                alert(parseInt(oTxt1.value)+parseInt(oTxt2.value))

                break

            case '-':

                alert(parseInt(oTxt1.value)-parseInt(oTxt2.value))

                break

            case '*':

                alert(parseInt(oTxt1.value)*parseInt(oTxt2.value))

                break

            case '/':

                if(parseInt(oTxt2.value) !== 0){

                    alert(parseInt(oTxt1.value)/parseInt(oTxt2.value))

                }else{

                    alert('除数不能为0')

                }

                

                break

            default:

                alert('Bug!!!')

        }

    }

</script>

在JS中,运算符主要是用以连接简单表达式,组成复杂表达式,比如下面就是一个简单的加号运算符组成的表达式;

a + b

运算符有很多,但是可以大致的分为以下几个大类:

算术运算符、赋值运算符、比较运算符、布尔运算符、位运算符,以及一些诸如括号,typeof之类的有特定功能的运算符,下面就对这些运算符进行一些总结。

另外:关于运算符的优先级以及结合性请参考 MDN文档