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读取RSS数据
Jan 20 Javascript
js跟随滚动条滚动浮动代码
Dec 31 Javascript
js中格式化日期时间型数据函数代码
Nov 08 Javascript
jQuery常见开发技巧详细整理
Jan 02 Javascript
原生JS实现响应式瀑布流布局
Apr 02 Javascript
Backbone.js的一些使用技巧
Jul 01 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 Javascript
JS实现title标题栏文字不间断滚动显示效果
Sep 07 Javascript
详解如何在vue-cli中使用vuex
Aug 07 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
Sep 25 Javascript
详解vue中this.$emit()的返回值是什么
Apr 07 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
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
Layui table field初始化加载时进行隐藏的方法
2019/09/19 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
艺术用品:Arteza
2018/11/25 全球购物
大学生简历中个人的自我评价
2013/10/06 职场文书
中学教师师德承诺书
2014/05/23 职场文书
销售团队口号大全
2014/06/06 职场文书
个人安全生产责任书
2014/07/28 职场文书
机械操作工岗位职责
2014/08/08 职场文书
活动总结格式
2014/08/30 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
医学会议开幕词
2016/03/03 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers