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实现的仿Flash广告图片轮换效果
Apr 24 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
May 14 Javascript
用原生js做个简单的滑动效果的回到顶部
Oct 15 Javascript
jquery显示loading图片直到网页加载完成的方法
Jun 25 Javascript
AngularJS中过滤器的使用与自定义实例代码
Sep 17 Javascript
Angular表单验证实例详解
Oct 20 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
Oct 30 Javascript
聊聊JS动画库 Velocity.js的使用
Mar 13 Javascript
Vue组件通信的几种实现方法
Apr 25 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
Nov 09 Javascript
基于Cesium绘制抛物弧线
Nov 18 Javascript
js Proxy的原理详解
May 25 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与MySQL交互使用详解
2006/10/09 PHP
php 动态添加记录
2009/03/10 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
php 购物车完整实现代码
2014/06/05 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
javascript 面向对象继承
2009/11/26 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
JS实现多选框的操作
2020/06/24 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
Python生成8位随机字符串的方法分析
2017/12/05 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
Bally巴利中国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/10/09 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
餐饮总经理岗位职责
2014/03/07 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
万能检讨书
2015/01/27 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫