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 相关文章推荐
Jquery下:nth-child(an+b)的使用注意
May 28 Javascript
jQuery 自定义函数写法分享
Mar 30 Javascript
jquery写个checkbox——类似邮箱全选功能
Mar 19 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
Apr 18 Javascript
jquery实现页面虚拟键盘特效
Aug 08 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
May 30 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
Jun 17 Javascript
浅析JavaScript函数的调用模式
Aug 10 Javascript
基于vue2.x的电商图片放大镜插件的使用
Jan 22 Javascript
Javascript实现异步编程的过程
Jun 18 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
Jan 18 Javascript
React如何实现浏览器打印部分内容详析
May 19 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
色色整理的PHP面试题集锦
2012/03/08 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
Python实现视频下载功能
2017/03/14 Python
Python中的并发处理之asyncio包使用的详解
2018/04/03 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
python实现矩阵打印
2019/03/02 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
会计专业毕业生求职信
2014/07/04 职场文书
买房协议书范本
2014/10/23 职场文书
医生个人年终总结
2015/02/28 职场文书
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python