js 如何实现加法?
{
var a = prompt("输入第一个数","");
var b = prompt("输入第二个数","");
var c = a + b;
alert(c);
}
分别输入1和2 以后 结果不是3 而是12
这是怎么会使阿? 展开
/**
** 加法函数,用来得到精确的加法结果
** 说明: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>
js中加法运算有:
1、输入的是字符串, 字符串的连接符也是加号, 最后就按字符串运算了,所以先转换成数值型。
整数:c=parseInt(a)+parseInt(b)
浮点数:c =parseFloat(a)+parseFloat(b)
2、evel:可计算某个字符串,并执行其中的的 JavaScript 代码。
evel(a+b)
例如:
var a = 1,
var b = 2,
var c = a + b
这样c得出来的解果是12,
使用Number()函数可以解决这个问题,如下
var c = Number(a) + Number(b)
这样c得出来的解果是3。
扩展资料:
Javascript中加法运算符总结
1、String+String
var a = '10',
b = '20';
console.log(a+b); //1020
2、String+Object
var a = '10',
b = {_key:20};
console.log(a+b); //10[object Object]
//Object.prototype.toString()方法返回一个表示该对象的字符串。
3、String+Number
var a = '10',
b = 20;
console.log(a+b); //1020
var a = 10,
b = '20';
console.log(a+b); //1020
js中加法运算有:
1、输入的是字符串, 字符串的连接符也是加号, 最后就按字符串运算了,所以先转换成数值型。
整数:c=parseInt(a)+parseInt(b)
浮点数:c =parseFloat(a)+parseFloat(b)
2、evel:可计算某个字符串,并执行其中的的 JavaScript 代码。
evel(a+b)
例如:
var a = 1,
var b = 2,
var c = a + b ,
这样c得出来的解果是12。
使用Number()函数可以解决这个问题,如下 :
var c = Number(a) + Number(b)
这样c得出来的解果是3。
扩展资料
Javascript中加法运算符总结:
1、String+String
var a = '10',
b = '20';
console.log(a+b); //1020
2、String+Object
var a = '10',
b = {_key:20};
console.log(a+b); //10[object Object]
//Object.prototype.toString()方法返回一个表示该对象的字符串。
3、String+Number
var a = '10',
b = 20;
console.log(a+b); //1020
var a = 10,
b = '20';
console.log(a+b); //1020
可以先转换成数值型, 比如整数:
c=parseInt(a)+parseInt(b)
例如“a”+"b" 可以自动组成ab ; 1+ 2 自动变成3
2:不同类型的字符 我们先转换例如 “1”+2 ; parsInt("1")+2 可以实现加法3
3:利用eval 表达式进行实现