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当中的代码嗅探扩展原生对象和原型(prototype)
Jan 11 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
Nov 07 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
Jan 07 Javascript
JavaScript作用域链示例分享
May 27 Javascript
完美解决IE9浏览器出现的对象未定义问题
Sep 29 Javascript
Vue filter介绍及其使用详解
Oct 21 Javascript
vue v-model实现自定义样式多选与单选功能
Jul 05 Javascript
vue.js使用v-if实现显示与隐藏功能示例
Jul 06 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
Sep 10 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
May 12 Javascript
vue 防止页面加载时看到花括号的解决操作
Nov 09 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
Jan 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
PHP文件上传原理简单分析
2011/05/29 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
php json相关函数用法示例
2017/03/28 PHP
MooTools 1.2介绍
2009/09/14 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
Django小白教程之Django用户注册与登录
2016/04/22 Python
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
matplotlib绘制动画代码示例
2018/01/02 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
2020/02/09 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
一年级班主任寄语
2014/01/19 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
小学生春游活动方案
2014/08/20 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
网聊搭讪开场白
2015/05/28 职场文书
活着观后感
2015/06/03 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
2019公司管理制度
2019/04/19 职场文书