Js四则运算函数代码


Posted in Javascript onJuly 21, 2012
//除法函数,用来得到精确的除法结果 
//说明: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); 
} 
} 
//给Number类型增加一个div方法,调用起来更加方便。 
Number.prototype.div = function (arg){ 
return accDiv(this, arg); 
}; 
//乘法函数,用来得到精确的乘法结果 
//说明: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); 
} 
//给Number类型增加一个mul方法,调用起来更加方便。 
Number.prototype.mul = function (arg){ 
return accMul(arg, this); 
}; 
//加法函数,用来得到精确的加法结果 
//说明: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; 
} 
//给Number类型增加一个add方法,调用起来更加方便。 
Number.prototype.add = function (arg){ 
return accAdd(arg,this); 
}; 
//减法函数 
function accSub(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)); 
//last modify by deeka 
//动态控制精度长度 
n=(r1>=r2)?r1:r2; 
return ((arg2*m-arg1*m)/m).toFixed(n); 
} 
///给number类增加一个sub方法,调用起来更加方便 
Number.prototype.sub = function (arg){ 
return accSub(arg,this); 
};
Javascript 相关文章推荐
php析构函数的具体用法小结
Mar 11 Javascript
三种检测iPhone/iPad设备方向的方法
Apr 23 Javascript
深入浅析同源策略和跨域访问
Nov 26 Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 Javascript
js实现弹窗居中的简单实例
Oct 09 Javascript
AngularJS中的按需加载ocLazyLoad示例
Jan 11 Javascript
Vue开发中整合axios的文件整理
Apr 29 Javascript
linux 后台运行node服务指令方法
May 23 Javascript
Vue使用NPM方式搭建项目
Oct 25 Javascript
vue实现直播间点赞飘心效果的示例代码
Sep 20 Javascript
v-slot和slot、slot-scope之间相互替换实例
Sep 04 Javascript
vue组件中传值EventBus的使用及注意事项说明
Nov 16 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
Jul 21 #Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
Jul 21 #Javascript
Javascript中找到子元素在父元素内相对位置的代码
Jul 21 #Javascript
分享XmlHttpRequest调用Webservice的一点心得
Jul 20 #Javascript
基于jquery的可多选的下拉列表框
Jul 20 #Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
Jul 20 #Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
Jul 20 #Javascript
You might like
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
php桌面中心(一) 创建数据库
2007/03/11 PHP
PHP 定界符 使用技巧
2009/06/14 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
微信小程序中换行空格(多个空格)写法详解
2018/07/10 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
计算机专业个人求职自荐信
2013/09/21 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
会计工作总结范文2014
2014/12/23 职场文书
义卖募捐活动总结
2015/05/09 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis