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 相关文章推荐
Json字符串转换为JS对象的高效方法实例
May 01 Javascript
jQuery实现checkbox全选的方法
Jun 10 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
Jul 27 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 Javascript
BootStrap的JS插件之轮播效果案例详解
May 16 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
May 30 Javascript
JavaScript判断数字是否为质数的方法汇总
Jun 02 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
Aug 03 Javascript
vue-cli配置环境变量的方法
Jul 09 Javascript
vue 自定义提示框(Toast)组件的实现代码
Aug 17 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
Nov 11 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
Apr 28 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
php xml-rpc远程调用
2008/12/19 PHP
php Smarty date_format [格式化时间日期]
2010/03/15 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
小程序实现投票进度条
2019/11/20 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
利用Python破解验证码实例详解
2016/12/08 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
python 不以科学计数法输出的方法
2018/07/16 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
2020/03/09 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
小学一年级评语大全
2014/04/22 职场文书
指导教师评语
2014/04/26 职场文书
激励口号大全
2014/06/17 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python
SQL Server中搜索特定的对象
2022/05/25 SQL Server