源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js浮点数精确计算(加、减、乘、除)

  • 时间:2021-09-20 13:43 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js浮点数精确计算(加、减、乘、除)
[u]复制代码[/u] 代码如下:
<SPAN style="FONT-SIZE: 18px">//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。   //调用:accAdd(arg1,arg2)   //返回值:arg1加上arg2的精确结果   function accAdd(arg1,arg2){      var r1,r2,m;      try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}      try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}      m=Math.pow(10,Math.max(r1,r2))      return (arg1*m+arg2*m)/m  }</SPAN> 
[u]复制代码[/u] 代码如下:
<SPAN style="FONT-SIZE: 18px">  //说明:javascript的减法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。   //调用:accSub(arg1,arg2)   //返回值:arg1减上arg2的精确结果   function accSub(arg1,arg2){          return accAdd(arg1,-arg2);  }</SPAN>
[u]复制代码[/u] 代码如下:
<SPAN style="FONT-SIZE: 18px">  //说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。   //调用:accMul(arg1,arg2)   //返回值:arg1乘以arg2的精确结果   function accMul(arg1,arg2)  {      var m=0,s1=arg1.toString(),s2=arg2.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)  }</SPAN>
[u]复制代码[/u] 代码如下:
<SPAN style="FONT-SIZE: 18px">  //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。   //调用:accDiv(arg1,arg2)   //返回值:arg1除以arg2的精确结果   function accDiv(arg1,arg2){      var t1=0,t2=0,r1,r2;      try{t1=arg1.toString().split(".")[1].length}catch(e){}      try{t2=arg2.toString().split(".")[1].length}catch(e){}      with(Math){          r1=Number(arg1.toString().replace(".",""))          r2=Number(arg2.toString().replace(".",""))          return (r1/r2)*pow(10,t2-t1);      }  }</SPAN> 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部