JavaScript使用math.js进行精确计算操作示例

本文实例讲述了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.jb51.net/code/HtmlJsRun测试运行效果。

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript操作DOM技巧总结》及《JavaScript字符与字符串操作技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

(0)

相关推荐

  • js关于精确计算和数值格式化以及直接引js文件

    复制代码 代码如下: (function () { var calc = { /* 函数,加法函数,用来得到精确的加法结果 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较为精确的加法结果. 参数:arg1:第一个加数:arg2第二个加数:d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数) 调用:Calc.Add(arg1,arg2,d) 返回值:两数相加的结果 */ Add: function (arg1, arg2,d) { arg1

  • js Math 对象的方法

    1.丢弃小数部分,保留整数部分 parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math.round(5/2) 4,向下取整 Math.floor(5/2) Math 对象方法 FF: Firefox, IE: Internet Explorer 方法 描述 FF IE abs(x) 返回数的绝对值. 1 3 acos(x) 返回数的反余弦值. 1 3 asin(x) 返回数的反正弦值. 1 3 atan(x) 以介于 -PI/2 与

  • Javascript四舍五入Math.round()与Math.pow()使用介绍

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Javascrip

  • js浮点数精确计算(加、减、乘、除)

    复制代码 代码如下: <SPAN style="FONT-SIZE: 18px">//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较为精确的加法结果.   //调用:accAdd(arg1,arg2)   //返回值:arg1加上arg2的精确结果   function accAdd(arg1,arg2){      var r1,r2,m;      try{r1=arg1.toString().split(".&

  • 介绍JavaScript中Math.abs()方法的使用

    这个方法返回一个数字的绝对值. 语法 Math.abs( x ) ; 下面是参数的详细信息: x : 一个数字 返回值: 返回一个数字的绝对值 例子: <html> <head> <title>JavaScript Math abs() Method</title> </head> <body> <script type="text/javascript"> var value = Math.abs(-

  • Javascript Math ceil()、floor()、round()三个函数的区别

    下面来介绍将小数值舍入为整数的几个方法:Math.ceil().Math.floor()和Math.round(). 这三个方法分别遵循下列舍入规则: ◎Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数: ◎Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数: ◎Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数(这也是我们在数学课上学到的舍入规则). 下面是使用这些方法的示例: alert(Math.ceil(25.9))

  • 使用js Math.random()函数生成n到m间的随机数字

    摘要: 本文讲解如何使用js生成n到m间的随机数字,主要目的是为后期的js生成验证码做准备. Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1) 生成n-m,包含n但不包含m的整数: 第一步算出 m-n的值,假设等于w 第二步Math.random()*w 第三步Math.random()*w+n 第四步parseInt(Math.random()*w+n, 10) 生成n-m,不包含n但包含m的整数:​ 第一步算出 m-n的值,假设等于w 第二步Math

  • JavaScript Math.floor方法(对数值向下取整)

    JavaScript Math.floor 方法 Math.floor 方法用于对数值向下取整,即得到小于或等于该数值的最大整数.语法如下: Math.floor(x) 参数说明: 参数 说明 x 必需.必须是一个数值. 提示:该方法与 Math.ceil 方法正好相反. Math.floor 方法实例 <script language="JavaScript"> document.write( Math.floor(0.35) + "<br />&q

  • js中精确计算加法和减法示例

    /精确计算加法和减法.例如0.1+0.2=0.3或 0.1-0.2=-0.1 复制代码 代码如下: function addFn(dataOne,dataTwo){ var dataOneInt=dataOne.toString().split(".")[0]; var dataOneFloat=""; var dataTwoInt=dataTwo.toString().split(".")[0]; var dataTwoFloat="

  • JavaScript使用math.js进行精确计算操作示例

    本文实例讲述了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.

  • 详解js加减乘除精确计算

    JS无法进行精确计算的bug 在做CRM,二代审核需求审核详情页面时.需要按比例(后端传类似0.8的小数)把用户输入的数字显示在不同的地方. 在做dubheInvest = invest * (1 - ratio);运算时发现问题.具体如下: 示例代码: console.log( 1 - 0.8 ); //输出 0.19999999999999996 console.log( 6 * 0.7 ); //输出 4.199999999999999 console.log( 0.1 + 0.2 );

  • PHP精确计算功能示例

    本文实例讲述了PHP精确计算功能.分享给大家供大家参考,具体如下: 引言:一定要确保数据的准确性.这是一个好的程序员的基本素养. <?php /** * 精确加法 * @param [type] $a [description] * @param [type] $b [description] */ function math_add($a,$b,$scale = '2') { return bcadd($a,$b,$scale); } /** * 精确减法 * @param [type] $a

  • JS原型与继承操作示例

    本文实例讲述了JS原型与继承操作.分享给大家供大家参考,具体如下: <script> var Beverage = function(){}; Beverage.prototype.boilWater = function(){ console.log("把水煮沸"); }; Beverage.prototype.brew = function(){ throw new Error("子类必须重写该方法"); }; Beverage.prototype.

  • JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】

    本文实例讲述了JS常见DOM节点操作.分享给大家供大家参考,具体如下: DOM含义:DOM是文档对象模型(Document Object Model,是基于浏览器编程的一套API接口,是W3C出台的推荐标准.其赋予了JS操作节点的能力.当网页被加载时,浏览器就会创建页面的文档对象模型. 节点:根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点: 1.整个文档时一个文档节点. 2.每个HTML元素是元素节点. 3.HTML元素内的文本是文本节点. 4.每个HTML属性是属

  • JavaScript使用百度ECharts插件绘制饼图操作示例

    本文实例讲述了JavaScript使用百度ECharts插件绘制饼图操作.分享给大家供大家参考,具体如下: 百度ECharts是一款由百度前端团队开发与维护的,基于HTML5的开源JavaScript图表库.E是Enterprise的简称,意思是商业级数据图表. 本文简述使用ECharts绘制饼图(Pie Chart)的过程,下图为使用ECharts绘制的饼图实例. 首先需要在页面中新建<script>标签,引入符合AMD规范的加载器,如esl.js 关于AMD规范的详细介绍,可以参考阮一峰的

  • Python实现的排列组合计算操作示例

    本文实例讲述了Python实现的排列组合计算操作.分享给大家供大家参考,具体如下: 1. 调用 scipy 计算排列组合的具体数值 >> from scipy.special import comb, perm >> perm(3, 2) 6.0 >> comb(3, 2) 3.0 2. 调用 itertools 获取排列组合的全部情况数 >> from itertools import combinations, permutations >>

  • JavaScript实现多态和继承的封装操作示例

    本文实例讲述了JavaScript实现多态和继承的封装操作.分享给大家供大家参考,具体如下: 封装Encapsulation 如下代码,这就算是封装了 (function (windows, undefined) { var i = 0;//相对外部环境来说,这里的i就算是封装了 })(window, undefined); 继承Inheritance (function (windows, undefined) { //父类 function Person() { } Person.proto

  • javascript实现的字符串转换成数组操作示例

    本文实例讲述了javascript实现的字符串转换成数组操作.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net 字符串转换成数组</title> <script> var str="abcdefg" //1.将字符串

随机推荐