js加减乘除丢失精度问题解决方法
来源:互联网 发布:北师大网络教育平台 编辑:程序博客网 时间:2024/06/05 16:17
<script type="text/javascript"> // 两个浮点数求和 function accAdd(num1,num2){ var r1,r2,m; try{ r1 = num1.toString().split('.')[1].length; }catch(e){ r1 = 0; } try{ r2=num2.toString().split(".")[1].length; }catch(e){ r2=0; } m=Math.pow(10,Math.max(r1,r2)); // return (num1*m+num2*m)/m; return Math.round(num1*m+num2*m)/m; } // 两个浮点数相减 function accSub(num1,num2){ var r1,r2,m; try{ r1 = num1.toString().split('.')[1].length; }catch(e){ r1 = 0; } try{ r2=num2.toString().split(".")[1].length; }catch(e){ r2=0; } m=Math.pow(10,Math.max(r1,r2)); n=(r1>=r2)?r1:r2; return (Math.round(num1*m-num2*m)/m).toFixed(n); } // 两个浮点数相除 function accDiv(num1,num2){ var t1,t2,r1,r2; try{ t1 = num1.toString().split('.')[1].length; }catch(e){ t1 = 0; } try{ t2=num2.toString().split(".")[1].length; }catch(e){ t2=0; } r1=Number(num1.toString().replace(".","")); r2=Number(num2.toString().replace(".","")); return (r1/r2)*Math.pow(10,t2-t1); } // 两个浮点数相乘 function accMul(num1,num2){ var m=0,s1=num1.toString(),s2=num2.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); } </script> <script> document.write("使用js原生态方法"); document.write("<br/> 1.01 + 1.02 ="+(1.01 + 1.02)); document.write("<br/> 1.01 - 1.02 ="+(1.01 - 1.02)); document.write("<br/> 0.000001 / 0.0001 ="+(0.000001 / 0.0001)); document.write("<br/> 0.012345 * 0.000001 ="+(0.012345 * 0.000001)); document.write("<br/><hr/>"); document.write("<br/>使用自定义方法"); document.write("<br/> 1.01 + 1.02 ="+accAdd(1.01,1.02)); document.write("<br/> 1.01 - 1.02 ="+accSub(1.01,1.02)); document.write("<br/> 0.000001 / 0.0001 ="+accDiv(0.000001,0.0001)); document.write("<br/> 0.012345 * 0.000001 ="+accMul(0.012345,0.000001)); </script>
0 0
- js加减乘除丢失精度问题解决方法
- js加减乘除丢失精度问题解决方法
- js加减乘除丢失精度问题解决方法 你试一下12*1.3就知道了
- js加减乘除丢失精度问题
- JS中toFixed()方法引起的精度丢失的问题解决
- JS浮点类型运算精度丢失问题解决办法
- JS的浮点数计算精度丢失问题解决方案
- JavaScript加减乘除丢失精度问题处理
- js精度问题解决方案
- Js计算,精度丢失处理
- JS数字精度丢失详解
- 关于Java精度不丢失的加减乘除运算
- 使用BigDecimal解决double加减乘除丢失精度问题
- double运算丢失精度问题解决方案.
- JavaScript小数计算精度丢失问题解决方案
- Nginx下Django Admin界面Css、JS丢失问题解决方法
- js浮点运算精度丢失的解决办法
- js浮点运算精度丢失的解决办法
- 挑战 P234 poj3281
- 目标检测--Accurate Single Stage Detector Using Recurrent Rolling Convolution
- 数组和链表的区别
- 盒子弧度
- Android——EventBus3.0的使用详解
- js加减乘除丢失精度问题解决方法
- 为什么Linux的音频驱动位于sound目录下而不是driver/sound?
- VR、RTMP播放器SGPlayer原理详解
- Android和javascript相互调用
- 盒子阴影
- JavaScript保留字和关键字
- sessionStorage localStorage 和 cookie 之间的区别
- 后台学习六---ajaxFileupload文件上传下载
- hibernate的setFirstResult(a),setMaxResults(b)后,不按照一定顺序取值