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窗口功能指南之在窗口中书写内容
Jul 21 Javascript
jquery限制输入字数,并提示剩余字数实现代码
Dec 24 Javascript
Google (Local) Search API的简单使用介绍
Nov 28 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
Dec 26 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
全面了解JS中的匿名函数
Jun 29 Javascript
Angular表单验证实例详解
Oct 20 Javascript
利用PM2部署node.js项目的方法教程
May 10 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
Oct 25 Javascript
详解为生产环境编译Angular2应用的方法
Dec 10 Javascript
vue 单页应用和多页应用的优劣
Oct 22 Javascript
JS 基本概念详细介绍
Oct 16 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&amp;java(一)
2006/10/09 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
php字符串分割函数用法实例
2015/03/17 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
ext实现完整的登录代码
2008/08/08 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
取numpy数组的某几行某几列方法
2018/04/03 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
24式加速你的Python(小结)
2019/06/13 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
python实现贪吃蛇双人大战
2020/04/18 Python
Python多线程正确用法实例解析
2020/05/30 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
软件测试题目
2013/02/27 面试题
Java如何读取CLOB字段
2013/10/10 面试题
某学校的2019年度工作报告范本
2019/10/11 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android