JavaScript使用math.js进行精确计算操作示例


Posted in Javascript onJune 19, 2018

本文实例讲述了JavaScript使用math.js进行精确计算操作。分享给大家供大家参考,具体如下:

javascript进行浮点运算会有尾差,比如算个0.1+0.7试试,得到的不是0.8 。这个问题可以使用math.js解决。

Math.js是一款开源的JavaScript和Node.js数学库,用于处理数字、大数、复数、单位和矩阵。

官网: http://mathjs.org/

cdn地址:https://cdnjs.cloudflare.com/ajax/libs/mathjs/5.0.0/math.js

示例代码:

<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/5.0.0/math.js"></script>
<script type="text/javascript">
function fn_click(p){
  var a , b;
  a=0.7;
  b=0.1;
  if(p==1){
    alert(a+b);
  }else if(p==2){
    alert(eval("a+b"));
  }else if(p==3){
    math.config({
      number: 'BigNumber'
    });
    var result = math.parser().eval(a + "+" + b)
    alert(result);
  }
}
</script>
</head>
<body>
  <input type="button" value="0.7+0.1" onclick="fn_click(1);" />
  <input type="button" value="eval(0.7+0.1)" onclick="fn_click(2);" />
  <input type="button" value="mathjs(0.7+0.1)" onclick="fn_click(3);" />
</body>
</html>

上面分别用3种方法计算0.7+0.1,可以看到使用math.parser().eval()计算得到了准确的结果0.8

这里可以使用在线HTML/CSS/JavaScript代码运行工具 http://tools.3water.com/code/HtmlJsRun测试运行效果。

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.3water.com/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.3water.com/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.3water.com/jisuanqi/jsq

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
DHTML Slide Show script图片轮换
Mar 03 Javascript
js jquery获取随机生成id的服务器控件的三种方法
Jul 11 Javascript
JS解决ie6下png透明的方法实例
Aug 02 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
Jun 05 Javascript
javascript中tostring()和valueof()的用法及两者的区别
Nov 16 Javascript
javascript实现不同颜色Tab标签切换效果
Apr 27 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
JavaScript验证知识整理
Mar 24 Javascript
webpack之引入图片的实现及问题
Oct 08 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
Nov 08 Javascript
vue实现移动端input上传视频、音频
Aug 18 Javascript
使用proxy实现一个更优雅的vue【推荐】
Jun 19 #Javascript
微信小程序input框中加入小图标的实现方法
Jun 19 #Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
Jun 19 #Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
Jun 19 #Javascript
Vue.js 2.x之组件的定义和注册图文详解
Jun 19 #Javascript
Vue中使用webpack别名的方法实例详解
Jun 19 #Javascript
vue mounted组件的使用
Jun 18 #Javascript
You might like
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
Eval and new funciton not the same thing
2012/12/27 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
python读取Android permission文件
2013/11/01 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
python django中8000端口被占用的解决
2019/12/17 Python
Python正则表达式学习小例子
2020/03/03 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
建筑设计师岗位职责
2013/11/18 职场文书
行政总经理岗位职责
2013/12/05 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS