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 相关文章推荐
jQuery多项选项卡的实现思路附样式及代码
Jun 03 Javascript
jquery validate表单验证插件
Sep 06 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
Sep 28 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
Dec 08 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
Feb 27 Javascript
Vuex的基本概念、项目搭建以及入坑点
Nov 04 Javascript
django js 实现表格动态标序号的实例代码
Jul 12 Javascript
vue中@change兼容问题详解
Oct 25 Javascript
js中Function引用类型常见有用的方法和属性详解
Dec 11 Javascript
基于redis的小程序登录实现方法流程分析
May 25 Javascript
vue2的 router在使用过程中遇到的一些问题
Apr 13 Vue.js
使用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
Terran兵种介绍
2020/03/14 星际争霸
php 魔术方法使用说明
2009/10/20 PHP
php 求质素(素数) 的实现代码
2011/04/12 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python getopt模块处理命令行选项实例
2014/05/13 Python
python文件操作整理汇总
2014/10/21 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
python3调用R的示例代码
2018/02/23 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
Python @property及getter setter原理详解
2020/03/31 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
.net软件工程师面试题
2015/03/31 面试题
活动总结书
2014/05/08 职场文书
化工专业自荐书
2014/06/16 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
合作合同协议书
2016/03/21 职场文书