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解析与序列化json数据(一)json.stringify()的基本用法
Feb 01 Javascript
js字符串转成JSON
Nov 07 Javascript
javascript判断复选框是否选中的方法
Oct 16 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
Jun 08 Javascript
JS自定义滚动条效果简单实现代码
Oct 27 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
Mar 05 Javascript
Angular中使用better-scroll插件的方法
Mar 27 Javascript
Node.js之删除文件夹(含递归删除)代码实例
Sep 09 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
Sep 23 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
Dec 18 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
Jan 12 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 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运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
php利用header函数下载各种文件
2016/08/24 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
浅谈node的事件机制
2017/10/09 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
windows下安装Python和pip终极图文教程
2017/03/05 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
HTML5 weui使用笔记
2019/11/21 HTML / CSS
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
质检的岗位职责
2013/11/17 职场文书
劳动实践课感言
2014/02/01 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
励志演讲稿大全
2014/08/21 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书