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 相关文章推荐
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 Javascript
setTimeout和setInterval的区别你真的了解吗?
Mar 31 Javascript
JavaScript中判断原生函数检查function是否是原生代码
Sep 09 Javascript
30个经典的jQuery代码开发技巧
Dec 15 Javascript
jQuery与JavaScript节点创建方法的对比
Nov 18 Javascript
JavaScript中object和Object的区别(详解)
Feb 27 Javascript
Bootstrap页面标题Page Header的实现方法
Mar 22 Javascript
微信小程序开发之toast等弹框提示使用教程
Jun 08 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
Jun 25 Javascript
Vue 组件修改根实例的数据的方法
Apr 02 Javascript
node+multer实现图片上传的示例代码
Feb 18 Javascript
jQuery 动态粒子效果示例代码
Jul 07 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
php实现多张图片上传加水印技巧
2013/04/18 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
react router 4.0以上的路由应用详解
2017/09/21 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
PyQt5实现下载进度条效果
2018/04/19 Python
python解释器spython使用及原理解析
2019/08/24 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
美国美妆网站:B-Glowing
2016/10/12 全球购物
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
小学教育见习报告
2014/10/31 职场文书
迎新生欢迎词
2015/01/23 职场文书
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL