//加法函数,用来得到精确的加法结果
//javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=().split(".")[1].length}catch(e){r1=0}
try{r2=().split(".")[1].length}catch(e){r2=0}
m=(10,(r1,r2));
return (accMul(arg1,m)+accMul(arg2,m))/m;
}
//javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
function accMul(arg1,arg2){
var m=0,s1=(),s2=();
try{m+=(".")[1].length}catch(e){}
try{m+=(".")[1].length}catch(e){}
return Number((".",""))*Number((".",""))/(10,m)
}
(function () {
var calc = {
/*
函数,加法函数,用来得到精确的加法结果
说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
参数:arg1:第一个加数;arg2第二个加数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数)
调用:(arg1,arg2,d)
返回值:两数相加的结果
*/
Add: function (arg1, arg2) {
arg1 = (), arg2 = ();
var arg1Arr = ("."), arg2Arr = ("."), d1 = == 2 ? arg1Arr[1] : "", d2 = == 2 ? arg2Arr[1] : "";
var maxLen = (, );
var m = (10, maxLen);
var result = Number(((arg1 * m + arg2 * m) / m).toFixed(maxLen));
var d = arguments[2];
return typeof d === "number" ? Number((result).toFixed(d)) : result;
},
/*
函数:减法函数,用来得到精确的减法结果
说明:函数返回较为精确的减法结果。
参数:arg1:第一个加数;arg2第二个加数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数
调用:(arg1,arg2)
返回值:两数相减的结果
*/
Sub: function (arg1, arg2) {
return (arg1, -Number(arg2), arguments[2]);
},
/*
函数:乘法函数,用来得到精确的乘法结果
说明:函数返回较为精确的乘法结果。
参数:arg1:第一个乘数;arg2第二个乘数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数)
调用:(arg1,arg2)
返回值:两数相乘的结果
*/
Mul: function (arg1, arg2) {
var r1 = (), r2 = (), m, resultVal, d = arguments[2];
m = ((".")[1] ? (".")[1].length : 0) + ((".")[1] ? (".")[1].length : 0);
resultVal = Number((".", "")) * Number((".", "")) / (10, m);
return typeof d !== "number" ? Number(resultVal) : Number((parseInt(d)));
},
/*
函数:除法函数,用来得到精确的除法结果
说明:函数返回较为精确的除法结果。
参数:arg1:除数;arg2被除数;d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数)
调用:(arg1,arg2)
返回值:arg1除于arg2的结果
*/
Div: function (arg1, arg2) {
var r1 = (), r2 = (), m, resultVal, d = arguments[2];
m = ((".")[1] ? (".")[1].length : 0) - ((".")[1] ? (".")[1].length : 0);
resultVal = Number((".", "")) / Number((".", "")) * (10, m);
return typeof d !== "number" ? Number(resultVal) : Number((parseInt(d)));
}
};
= calc;
}());