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上传插件 uploadify v3.1使用说明
Jun 18 Javascript
JS正则中的RegExp对象对象
Nov 07 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
Apr 08 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
深入浅析AngularJS中的module(模块)
Jan 04 Javascript
jQuery实现本地预览上传图片功能
Jan 08 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
Aug 06 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 Javascript
vue+iview+less+echarts实战项目总结
Feb 22 Javascript
快速搭建vue2.0+boostrap项目的方法
Apr 09 Javascript
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
js模拟实现烟花特效
Mar 10 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/04/01 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python遍历类中所有成员的方法
2015/03/18 Python
机器学习python实战之手写数字识别
2017/11/01 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
对Python中内置异常层次结构详解
2018/10/18 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
python try...finally...的实现方法
2020/11/25 Python
super()与this()的区别
2016/01/17 面试题
遇到的Mysql的面试题
2014/06/29 面试题
中学家长会邀请函
2014/02/03 职场文书
降消项目实施方案
2014/03/30 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
主题实践活动总结
2014/05/08 职场文书
贷款承诺书范文
2014/05/19 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
导游词之贵州百里杜鹃
2019/10/29 职场文书
关于MySQL中的 like操作符详情
2021/11/17 MySQL
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS