计算

加减法

var a = "1.1" var b = "1" var c = a+b; //输出 "1.11"
var d = parseInt(a)+parseInt(b); //结果 2 
var d = parseFloat(a)+parseFloat(b); //结果 2.1
/* 加减法运算*/
function calculNum(type, num1, num2) {
	var sq1, sq2, m;
	try {
		sq1 = num1.toString().split(".")[1].length;
	}
	catch (e) {
		sq1 = 0;
	}
	try {
		sq2 = parseFloat(num2.toString().split(".")[1].length);
	}
	catch (e) {
		sq2 = 0;
	}
	m = Math.pow(10, Math.max(sq1, sq2));
	return type == "add" ? (accDiv(accMul(num1 , m) + accMul(num2 , m)) , m) : (accDiv(accMul(num1 , m) - accMul(num2 , m) , m));
}

乘除法

乘法:

//调用:accMul(arg1,arg2)

//返回值:arg1乘以arg2的精确结果

function accMul(arg1,arg2)
{
	var m=0,s1=arg1.toString(),s2=arg2.toString();
	try{m+=s1.split(".")[1].length}catch(e){}
	try{m+=s2.split(".")[1].length}catch(e){}
	return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}


除法:

//调用:accDiv(arg1,arg2)

//返回值:arg1除以arg2的精确结果

function accDiv(arg1,arg2){
	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);
	}
}