js数字计算 误差问题的快速解决方法

发布时间 - 2026-01-10 23:19:05    点击率:

实例如下:

//加法函数,用来得到精确的加法结果 

//说明: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数字计算 误差问题的快速解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# js计算误差  # javascript避免数字计算精度误差的方法详解  # JavaScript 计算误差的解决  # 会有  # 比较明显  # 返回值  # 浮点数  # 给大家  # 希望能  # 这篇  # 解决方法  # 小编  # 大家多多  # span  # style  # background  # accAdd  # pre  # color  # strong  # ccffcc  # class  # javascript 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高性能网站服务器配置指南:安全稳定与高效建站核心方案  iOS正则表达式验证手机号、邮箱、身份证号等  大同网页,大同瑞慈医院官网?  Laravel如何配置Horizon来管理队列?(安装和使用)  网站建设整体流程解析,建站其实很容易!  linux写shell需要注意的问题(必看)  大学网站设计制作软件有哪些,如何将网站制作成自己app?  使用C语言编写圣诞表白程序  Laravel如何实现用户密码重置功能?(完整流程代码)  在线制作视频网站免费,都有哪些好的动漫网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Linux安全能力提升路径_长期防护思维说明【指导】  如何批量查询域名的建站时间记录?  如何安全更换建站之星模板并保留数据?  iOS验证手机号的正则表达式  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  HTML 中动态设置元素 name 属性的正确语法详解  创业网站制作流程,创业网站可靠吗?  Laravel如何创建自定义Artisan命令?(代码示例)  Swift开发中switch语句值绑定模式  制作企业网站建设方案,怎样建设一个公司网站?  香港服务器如何优化才能显著提升网站加载速度?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Laravel Docker环境搭建教程_Laravel Sail使用指南  如何获取上海专业网站定制建站电话?  百度浏览器如何管理插件 百度浏览器插件管理方法  C#如何调用原生C++ COM对象详解  如何在万网自助建站中设置域名及备案?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Laravel如何实现用户注册和登录?(Auth脚手架指南)  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  如何快速搭建个人网站并优化SEO?  Laravel如何创建自定义Facades?(详细步骤)  Python数据仓库与ETL构建实战_Airflow调度流程详解  如何基于云服务器快速搭建网站及云盘系统?  如何在阿里云虚拟服务器快速搭建网站?  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  EditPlus 正则表达式 实战(3)