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中settimeout方法加参数
Feb 28 Javascript
javascript禁止访客复制网页内容的实现代码
Aug 05 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
Nov 09 Javascript
简单三步实现报表页面集成天气
Dec 15 Javascript
JavaScript实现各种排序的代码详解
Aug 28 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
Dec 27 Javascript
微信小程序模板(template)使用详解
Jan 31 Javascript
React key值的作用和使用详解
Aug 23 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
Mar 10 Javascript
JavaScript位置参数实现原理及过程解析
Sep 14 Javascript
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
PHP多个版本的分析解释
2011/07/21 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
XENON基于JSON变种
2010/07/27 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
Python3远程监控程序的实现方法
2019/07/15 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
有趣的广告词
2014/03/18 职场文书
公司年会策划方案
2014/05/17 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
诚信教育主题班会
2015/08/13 职场文书
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android