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获取GridView中用户点击控件的行号,列号
Apr 14 Javascript
js 刷新页面的代码小结 推荐
Apr 02 Javascript
javascript+mapbar实现地图定位
Apr 09 Javascript
基于Jquery的跨域传输数据(JSONP)
Mar 10 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
Visual Studio中js调试的方法图解
Jun 30 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
web打印小结
Jan 11 Javascript
移动端点击态处理的三种实现方式
Jan 12 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
Oct 31 Javascript
交互式可视化js库gojs使用介绍及技巧
Feb 18 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读取flv文件的播放时间长度
2009/09/03 PHP
php Smarty模板生成html文档的方法
2010/04/12 PHP
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
JS重载实现方法分析
2016/12/16 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
简单谈谈python中的语句和语法
2017/08/10 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
10张动图学会python循环与递归问题
2021/02/06 Python
自荐信结尾
2013/10/27 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
建筑人员岗位职责
2013/12/25 职场文书
班队活动设计方案
2014/01/30 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL