js中精确计算加法和减法示例


Posted in Javascript onMarch 28, 2014

/精确计算加法和减法。例如0.1+0.2=0.3或 0.1-0.2=-0.1

function addFn(dataOne,dataTwo){ var dataOneInt=dataOne.toString().split(".")[0]; 
var dataOneFloat=""; 
var dataTwoInt=dataTwo.toString().split(".")[0]; 
var dataTwoFloat=""; 
var lengthOne=0; 
var lengthTwo=0; 
var maxlength=0; 
if(dataOne.toString().split(".").length==2){ 
dataOneFloat=dataOne.toString().split(".")[1]; 
lengthOne=dataOneFloat.toString().length; 
} 
if(dataTwo.toString().split(".").length==2){ 
dataTwoFloat=dataTwo.toString().split(".")[1]; 
lengthTwo=dataTwoFloat.toString().length; 
} 
maxLength=Math.max(lengthOne,lengthTwo); 
for(var i=0;i<maxLength-lengthOne;i++){ 
dataOneFloat+="0"; 
} 
for(var i=0;i<maxLength-lengthTwo;i++){ 
dataTwoFloat+="0"; 
} 
/** 
*对两个数据进行倍数放大 
*使其都变为整数。因为整数计算 
*比较精确。 
*/ 
var one=dataOneInt+""+dataOneFloat; 
var two=dataTwoInt+""+dataTwoFloat; 
//alert("dataOne:"+dataOne+" dataTwo:"+dataTwo +" one:"+one+" two:"+two); 
/** 
*数据扩大倍数后,经计算的到结果, 
*然后在缩小相同的倍数 
*进而得到正确的结果 
*/ 
var result= (Number(one)+Number(two))/Math.pow(10,maxLength); 
return result; 
}
Javascript 相关文章推荐
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
Nov 12 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
Apr 07 Javascript
js实现DOM走马灯特效的方法
Jan 21 Javascript
jQuery的基本概念与高级编程
May 14 Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 Javascript
js实现简洁的TAB滑动门效果代码
Sep 06 Javascript
动态的9*9乘法表效果的实现代码
May 16 Javascript
AngularJS教程之环境设置
Aug 16 Javascript
详谈for循环里面的break和continue语句
Jul 20 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 jQuery
JavaScript实现美化滑块效果
May 17 Javascript
jQuery实现简易QQ聊天框
Feb 10 jQuery
查找页面中所有类为test的结点的方法
Mar 28 #Javascript
js 验证身份证信息有效性
Mar 28 #Javascript
JS中怎样判断undefined(比较不错的方法)
Mar 27 #Javascript
调用jQuery滑出效果时闪烁的解决方法
Mar 27 #Javascript
jquery选择符快速提取web表单数据示例
Mar 27 #Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
Mar 27 #Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 #Javascript
You might like
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
详细分析python3的reduce函数
2017/12/05 Python
Python实现快速计算词频功能示例
2018/06/25 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
汽车专业人才自我鉴定范文
2013/12/29 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
公务员考察材料范文
2014/12/23 职场文书
工作证明书
2015/06/15 职场文书