js高精度浮点数运算
2018-03-23 16:41
316 查看
贴代码:
测试:
测试结果如下:
加法
减法
乘法
除法
// 自定义高精度浮点数运算 // 对象格式写法 var float_calculator={ /** * 1.记录两个运算数小数点后的位数 * 2.将其转化为整数类型进行运算 * 3.移动小数点的位置 **/ add:function(arg1,arg2){ var r1,r2,m; try{ //取小数位长度 r1=arg1.toString().split(".")[1].length; r2=arg2.toString().split(".")[1].length; }catch(e){ r1=0;r2=0; } m=Math.pow(10,Math.max(r1,r2)); //计算因子 return (arg1*m+arg2*m)/m; }, minus:function(arg1,arg2){ return this.add(arg1,-arg2); }, mul:function(arg1,arg2){ var r1,r2,m; try{ //取小数位长度 r1=arg1.toString().split(".")[1].length; r2=arg2.toString().split(".")[1].length; }catch(e){ r1=0;r2=0; } m=Math.pow(10,Math.max(r1,r2)); //计算因子 return (arg1*m)*(arg2*m)/(m*m); }, div:function(arg1,arg2){ if( arg2 == 0 ) return 0; var t1=0,t2=0,r1,r2; try{ t1=arg1.toString().split(".")[1].length; t2=arg2.toString().split(".")[1].length; }catch(e){} with(Math){ r1=Number(arg1.toString().replace(".","")); r2=Number(arg2.toString().replace(".","")); } return (r1/r2)*Math.pow(10,t2-t1); } };
测试:
alert("高精度加法计算结果: "+float_caculator.add(1.11444,23.45674231)+ "\njs计算结果: "+(1.11444+23.45674231)); alert("高精度减法计算结果: "+float_caculator.minus(1.11444,23.45674231)+ "\njs计算结果: "+(1.11444-23.45674231)); alert("高精度乘法计算结果: "+float_caculator.mul(1.11444,23.45674231)+ "\njs计算结果: "+(1.11444*23.45674231)); alert("高精度除法计算结果: "+float_caculator.div(1.11444,23.45674231)+ "\njs计算结果: "+(1.11444/23.45674231));
测试结果如下:
加法
减法
乘法
除法
相关文章推荐
- js高精度浮点数运算
- JS 浮点数的 精确运算
- 详解JS-- 浮点数运算处理
- JS 浮点数四则运算精度丢失问题
- javascript浮点数运算,JS浮点数运算,浮点数运算
- JS浮点类型运算精度丢失问题解决办法
- JS-- 浮点数运算处理
- Nodejs学习笔记(十七)--- 浮点运算decimal.js
- js浮点类型运算错误解决
- js 浮点运算出现的精度丢失问题
- js浮点数运算需要注意的问题
- JS浮点运算 加减乘除
- 有关 PHP 和 js 浮点运算的坑
- POJ 1001:Exponentiation —— 高精度浮点数运算
- js处理浮点运算精度不正确的问题
- [导入]js 浮点运算表达式 精确计算(vb没有这个问题)
- js浮点运算精度丢失的解决办法
- JS浮点类型运算精度丢失问题解决办法
- 【转】JS浮点数运算Bug的解决办法
- JS浮点运算错误的解决