JS小数点加减乘除运算后位数增加的解决方案
2016-08-16 10:55
267 查看
/** * 加法运算,避免数据相加小数点后产生多位数和计算精度损失。 * * @param num1加数1 | num2加数2 */ function numAdd(num1, num2) { var baseNum, baseNum1, baseNum2; try { baseNum1 = num1.toString().split(".")[1].length; } catch (e) { baseNum1 = 0; } try { baseNum2 = num2.toString().split(".")[1].length; } catch (e) { baseNum2 = 0; } baseNum = Math.pow(10, Math.max(baseNum1, baseNum2)); return (num1 * baseNum + num2 * baseNum) / baseNum; }; /** * 减法运算,避免数据相减小数点后产生多位数和计算精度损失。 * * @param num1被减数 | num2减数 */ function numSub(num1, num2) { var baseNum, baseNum1, baseNum2; var precision;// 精度 try { baseNum1 = num1.toString().split(".")[1].length; } catch (e) { baseNum1 = 0; } try { baseNum2 = num2.toString().split(".")[1].length; } catch (e) { baseNum2 = 0; } baseNum = Math.pow(10, Math.max(baseNum1, baseNum2)); precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2; return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision); }; /** * 乘法运算,避免数据相乘小数点后产生多位数和计算精度损失。 * * @param num1被乘数 | num2乘数 */ function numMulti(num1, num2) { var baseNum = 0; try { baseNum += num1.toString().split(".")[1].length; } catch (e) { } try { baseNum += num2.toString().split(".")[1].length; } catch (e) { } return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum); }; /** * 除法运算,避免数据相除小数点后产生多位数和计算精度损失。 * * @param num1被除数 | num2除数 */ function numDiv(num1, num2) { var baseNum1 = 0, baseNum2 = 0; var baseNum3, baseNum4; try { baseNum1 = num1.toString().split(".")[1].length; } catch (e) { baseNum1 = 0; } try { baseNum2 = num2.toString().split(".")[1].length; } catch (e) { baseNum2 = 0; } with (Math) { baseNum3 = Number(num1.toString().replace(".", "")); baseNum4 = Number(num2.toString().replace(".", "")); return (baseNum3 / baseNum4) * pow(10, baseNum2 - baseNum1); } };
相关文章推荐
- js 加减乘除运算 进度问题 解决方案
- JS 浮点加减乘除运算
- js中控制小数点的显示位数的技术整理
- js 运算误差解决方案
- JS最基础的获取元素的值实现加减乘除运算
- 一个非常酷的Js计算器(加减乘除,浮点,以及括号运算,四则混合运算)
- vb作业:十位数内加减乘除四则运算测试系统
- JS小数运算丢失精度计算错误等解决方案
- js方法格式化数字,加入千分符,并可以指定小数点位数
- js自带的toFixed函数控制小数点的显示位数,来进行四舍五入的操作
- JS的toFixed方法设置小数点位数后再进行计算,数据出错问题
- js小数点位数、 文本框内容变动事件、字符转成实数
- js中控制小数点的显示位数的技术整理
- javascript(js)的小数点加减乘除问题
- Js 和 PHP 中保留小数点后X位数的方法 toFixed、round、number_format、sprintf
- js中float类型加减乘除运算精度问题
- js中加减乘除遇到小数时的位数问题
- js 中加减乘除 比较精确的算法,js本身有些运算会出错,这里给出较精确的算法
- js加减乘除运算重写
- js 加减乘除运算