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 相关文章推荐
JavaScript 事件参考手册
Dec 24 Javascript
JavaScript 浏览器对象模型BOM使用介绍
Apr 13 Javascript
3分钟掌握常用的JS操作JSON方法总结
Apr 25 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
Mar 19 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
May 13 Javascript
微信小程序之onLaunch与onload异步问题详解
Mar 28 Javascript
JS数组方法reverse()用法实例分析
Jan 18 Javascript
webpack中的模式(mode)使用详解
Feb 20 Javascript
webpack5 联邦模块介绍详解
Jul 08 Javascript
JavaScript实现鼠标移入随机变换颜色
Nov 24 Javascript
JavaScript继承的三种方法实例
May 12 Javascript
Vue实现tab导航栏并支持左右滑动功能
Jun 28 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
php Mysql日期和时间函数集合
2007/11/16 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
微信运维交互机器人的示例代码
2018/11/12 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
python清除字符串里非字母字符的方法
2015/07/02 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
np.dot()函数的用法详解
2020/01/17 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
Python3之外部文件调用Django程序操作model等文件实现方式
2020/04/07 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
大三自我鉴定范文
2013/10/05 职场文书
中层干部岗位职责
2013/12/18 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
债务纠纷代理词
2015/05/25 职场文书
公司食堂管理制度
2015/08/05 职场文书
人事任命书范本
2015/09/21 职场文书