温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何解决js数字计算误差的问题

发布时间:2021-07-16 11:13:25 来源:亿速云 阅读:162 作者:小新 栏目:web开发

这篇文章主要为大家展示了“如何解决js数字计算误差的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决js数字计算误差的问题”这篇文章吧。

实例如下:

//加法函数,用来得到精确的加法结果  //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。  //调用:accAdd(arg1,arg2)  //返回值:arg1加上arg2的精确结果  function add(a,b){ 	var c, d, e;   try {     c = a.toString().split(".")[1].length;   } catch (f) {     c = 0;   }   try {     d = b.toString().split(".")[1].length;   } catch (f) {     d = 0;   }   return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;	} 	//乘法函数,用来得到精确的乘法结果 	//说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。 	//调用:accMul(arg1,arg2) 	//返回值:arg1乘以arg2的精确结果  function mul(a, b) {   var c = 0,     d = a.toString(),     e = b.toString();   try {     c += d.split(".")[1].length;   } catch (f) {}   try {     c += e.split(".")[1].length;   } catch (f) {}   return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c); }	//减法函数,用来得到精确的减法结果 	//说明:javascript的减法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。 	//调用:accSubtr(arg1,arg2) 	//返回值:arg1减去arg2的精确结果 	function sub(a,b){	var c, d, e;	  try {	    c = a.toString().split(".")[1].length;	  } catch (f) {	    c = 0;	  }	  try {	    d = b.toString().split(".")[1].length;	  } catch (f) {	    d = 0;	  }	  return e = Math.pow(10, Math.max(c, d)), (mul(a, e) - mul(b, e)) / e;	}	//除法函数,用来得到精确的除法结果 	//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。 	//调用:accDiv(arg1,arg2) 	//返回值:arg1除以arg2的精确结果 	function div(a, b) {	  var c, d, e = 0,	    f = 0;	  try {	    e = a.toString().split(".")[1].length;	  } catch (g) {}	  try {	    f = b.toString().split(".")[1].length;	  } catch (g) {}	  return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), mul(c / d, Math.pow(10, f - e)); }

以上是“如何解决js数字计算误差的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js
AI