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 数组循环引起的思考
Jan 01 Javascript
9个JavaScript评级/投票插件
Jan 18 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
Nov 13 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
javascript高级模块化require.js的具体使用方法
Oct 31 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
Feb 09 Javascript
vue中使用sessionStorage记住密码功能
Jul 24 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
Aug 19 Javascript
一文搞懂ES6中的Map和Set
May 20 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
Aug 08 Javascript
node.js基础知识汇总
Aug 25 Javascript
二维码条形码生成的JavaScript脚本库
Jul 07 Javascript
查找页面中所有类为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
香妃
2021/03/03 冲泡冲煮
PHP几个数学计算的内部函数学习整理
2011/08/06 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
Python延时操作实现方法示例
2018/08/14 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
关于python3中setup.py小概念解析
2019/08/22 Python
python Pillow图像处理方法汇总
2019/10/16 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
PHP面试题集
2016/12/18 面试题
超市后勤自我鉴定
2014/01/17 职场文书
车辆工程专业求职信
2014/04/28 职场文书
社团活动总结书
2014/06/27 职场文书
设备收款委托书范本
2014/10/02 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
学雷锋日活动总结
2015/02/06 职场文书
公积金贷款承诺书
2015/04/30 职场文书
理解python中装饰器的作用
2021/07/21 Python
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis