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 相关文章推荐
ie下动态加态js文件的方法
Sep 13 Javascript
onclick与listeners的执行先后问题详细解剖
Jan 07 Javascript
JavaScript中创建类/对象的几种方法总结
Nov 29 Javascript
jQuery的基本概念与高级编程
May 14 Javascript
javascript实现简易计算器的代码
May 31 Javascript
JS实现颜色梯度与渐变效果完整实例
Dec 30 Javascript
详解JavaScript中return的用法
May 08 Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 Javascript
vue的常用组件操作方法应用分析
Apr 13 Javascript
vue-simple-uploader上传成功之后的response获取代码
Sep 07 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
Oct 29 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
Nov 04 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新手上路(六)
2006/10/09 PHP
PHP 实用代码收集
2010/01/22 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
JavaScript知识点整理
2015/12/09 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
Python之批量创建文件的实例讲解
2018/05/10 Python
python对日志进行处理的实例代码
2018/10/06 Python
Django视图扩展类知识点详解
2019/10/25 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
个人找工作的自我评价
2013/10/17 职场文书
重阳节登山活动方案
2014/02/03 职场文书
防灾减灾活动总结
2014/08/30 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
高中语文教学反思范文
2016/02/16 职场文书
导游词之青城山景区
2019/09/27 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL
Python中Selenium对Cookie的操作方法
2021/07/09 Python
Python matplotlib绘制雷达图
2022/04/13 Python
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers