首页 > 其他分享 >js浮点数精确计算函数(加,减,乘,除)

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

时间:2023-02-23 12:14:02浏览次数:36  
标签:r1 r2 arg1 浮点数 js toString split 精确 arg2

js浮点数精确计算函数(加,减,乘,除)
//浮点数加法运算  
 function FloatAdd(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  
  }  
  
 //浮点数减法运算  
 function FloatSub(arg1,arg2){  
 var r1,r2,m,n;  
 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));  
 //动态控制精度长度  
 n=(r1>=r2)?r1:r2;  
 return ((arg1*m-arg2*m)/m).toFixed(n);  
 }  
   
 //浮点数乘法运算  
 function FloatMul(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)   
  }   
  
  
//浮点数除法运算  
function FloatDiv(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);   
}   
}  

 

标签:r1,r2,arg1,浮点数,js,toString,split,精确,arg2
From: https://www.cnblogs.com/webSnow/p/17147448.html

相关文章

  • json库使用之removeMember
    工作中可能会遇到这种情况:想用json变量的内容但又不需要用全部,想把不需要的项删除掉。此时removeMember派上了用场。removeMember有好几个重载的版本,这里只讲3个常用的版......
  • nodejs 修改端口号 process.env.PORT(window环境下)
    nodejs修改端口号process.env.PORT(window环境下)各个环境下,nodejs设置process.env.PORT的值的命令,如下1.linux环境下:PORT=1234nodeapp.js使用上面命令每次都需......
  • node.js快速入门
    一.NodeJS简介1.1了解NodeJS简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于ChromeJavaScript运行时建立的一个平台。Node.js是一个事件驱动I/......
  • Node.js 入门
    本文摘自cnodejs.org,收集的比较全就直接拿过来了,帮助nodejs前端初学者初步了解nodejs的相关基础知识,为后面进一步学习打下基础。    本文摘自cnodejs.org,收集的比......
  • vue3+antd+jsx 实现表格行数据排序的动画效果
    ------------恢复内容开始------------vue3的写法转载https://blog.csdn.net/qq_51898604/article/details/128973430因为ant-design表格组件没有封装拖拽排序的方法,需......
  • JS语法让人困惑的点 “==与===”
    在JS中有很多神奇的语法,非常让人困惑,我们就先一一道来,相信你在开发中或多或少都踩过这些坑,或者让人无法理解。今天我们就来说下【】和【=】这题对于很多没有系统学过前端......
  • 858~860AJAX 概念、实现原生js
    AJAX:1.概念:AsynchronousJavascriptAndXML异步的JavaScript和xml1.异步和同步:客户端和服务器端相互通信的基础上客户端必须等待服务器......
  • js 给树形(层级)数组添加层级标识
    树形数据,需要给每层的数据添加层级,如下:consttreeData=[{id:1,name:'a',children:[{id:101,name:'a1',children:null}]},{......
  • json.dumps()使用indent参数 格式化输出json数据格式
    json.dumps() 方法 将一个Python数据结构转换为JSON字符串data=[{"name":"小王","sex":'男'},{"name":"小明","sex":'女'}]json_str=json.dum......
  • 使用 Three.js 的 3D 制作动画场景
    推荐:将 NSDT场景编辑器 加入你的3D开发工具链。由于GSL语法的复杂性,对于许多开发人员来说WebGL是一个未知的领域。但是有了Three.js,在浏览器中3D的实现变得简单......