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 相关文章推荐
js和jquery使按钮失效为不可用状态的方法
Jan 26 Javascript
JavaScript中获取高度和宽度函数总结
Oct 08 Javascript
jquery插件validation实现验证身份证号等
Jun 04 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
Jan 04 Javascript
实践中学习AngularJS表单
Mar 21 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
js原生日历的实例(推荐)
Oct 31 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
详解Angular5路由传值方式及其相关问题
Apr 28 Javascript
webpack 开发和生产并行设置的方法
Nov 08 Javascript
Vue.js计算机属性computed和methods方法详解
Oct 12 Javascript
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
查找页面中所有类为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 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
python 字符串格式化代码
2013/03/17 Python
Python实现截屏的函数
2015/07/26 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
python批量处理文件或文件夹
2020/07/28 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
python中JWT用户认证的实现
2020/05/18 Python
Python多分支if语句的使用
2020/09/03 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
中国最大的名表商城:万表网
2016/08/29 全球购物
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
教学个人的自我评价分享
2014/02/16 职场文书
大学英语专业求职信
2014/06/21 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
担保书范本
2015/01/20 职场文书
2015年端午节活动总结
2015/02/11 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL
使用feign服务调用添加Header参数
2021/06/23 Java/Android