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 Tab选项卡效果代码改进版
Apr 01 Javascript
javascript实现div的显示和隐藏的小例子
Jun 25 Javascript
jquery文本框中的事件应用以输入邮箱为例
May 06 Javascript
jQuery的几个我们必须了解的特点
May 03 Javascript
在JavaScript中使用JSON数据
Feb 15 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
May 20 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
Jun 12 Javascript
在js中实现邮箱格式的验证方法(推荐)
Oct 24 Javascript
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
vue项目使用微信公众号支付总结及遇到的坑
Oct 23 Javascript
javascript实现5秒倒计时并跳转功能
Jun 20 Javascript
ant design vue中表格指定格式渲染方式
Oct 28 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
python encode和decode的妙用
2009/09/02 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
Python制作exe文件简单流程
2019/01/24 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
python中xlrd模块的使用详解
2021/02/01 Python
html5+css3之制作header实例与更新
2020/12/21 HTML / CSS
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
司马光教学反思
2014/02/01 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
教师自荐信范文
2015/03/06 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
导游词之山海关
2019/12/10 职场文书