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 仿QQ校友的DIV模拟窗口效果源码
Mar 24 Javascript
Javascript下判断是否为闰年的Datetime包
Oct 26 Javascript
JS的replace方法介绍
Oct 20 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
Oct 21 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
javascript模拟php函数in_array
Apr 27 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
Nov 01 Javascript
JS 循环li添加点击事件 (闭包的应用)
Dec 10 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
微信小程序定位当前城市的方法
Jul 19 Javascript
vue中动态select的使用方法示例
Oct 28 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
May 28 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 IP转换整形(ip2long)的详解
2013/06/06 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
详解PHP归并排序的实现
2016/10/18 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python输出带颜色的字符串实例
2017/10/10 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Python编写一个优美的下载器
2018/04/15 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
浅谈python3中input输入的使用
2019/08/02 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
大学运动会通讯稿
2014/01/28 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
Python Pygame实战之塔防游戏的实现
2022/03/17 Python