floatCalc(参数1,参数2,运算符);
例:floatCalc(1,2,add); //加法,返回计算结果
var floatCalc = function (a, b, act) {
a = a + '', b = b + '';
var aNum = a.indexOf('.'),
bNum = b.indexOf('.'),
aSum,
bSum,
resultNum,
inta,
intb;
aSum = aNum < 0 ? 0 : a.split('.')[1].length;
bSum = bNum < 0 ? 0 : b.split('.')[1].length;
resultNum = aSum > bSum ? aSum : bSum;
inta = aNum < 0 ? Number(a + (Math.pow(10, resultNum) + '').replace('1', '')) : (function () {
a = a.replace('.', '');
a = resultNum == aSum ? a : a + (Math.pow(10, resultNum - aSum) + '').replace('1', '');
return Number(a);
}());
intb = bNum < 0 ? Number(b + (Math.pow(10, resultNum) + '').replace('1', '')) : (function () {
b = b.replace('.', '');
b = resultNum == bSum ? b : b + (Math.pow(10, resultNum - bSum) + '').replace('1', '');
return Number(b);
}());
switch(act) {
case "add": //加法
return (inta + intb) / Math.pow(10, resultNum);
break;
case "subtract": //减法
return (inta - intb) / Math.pow(10, resultNum);
break;
case "multiplication": //乘法
return (inta * intb) / Math.pow(10, resultNum);
break;
case "division": //除法
return (inta / intb);
break;
}
};