JavaScript使用math.js进行精确计算操作示例
本文实例讲述了JavaScript使用math.js进行精确计算操作。分享给大家供大家参考,具体如下:
javascript进行浮点运算会有尾差,比如算个0.1+0.7试试,得到的不是0.8 。这个问题可以使用math.js解决。
Math.js是一款开源的JavaScript和Node.js数学库,用于处理数字、大数、复数、单位和矩阵。
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程序设计有所帮助。
相关推荐
-
js关于精确计算和数值格式化以及直接引js文件
复制代码 代码如下: (function () { var calc = { /* 函数,加法函数,用来得到精确的加法结果 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较为精确的加法结果. 参数:arg1:第一个加数:arg2第二个加数:d要保留的小数位数(可以不传此参数,如果不传则不处理小数位数) 调用:Calc.Add(arg1,arg2,d) 返回值:两数相加的结果 */ Add: function (arg1, arg2,d) { arg1
-
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.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
-
介绍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.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 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
-
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="
-
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 ceil()、floor()、round()三个函数的区别
下面来介绍将小数值舍入为整数的几个方法:Math.ceil().Math.floor()和Math.round(). 这三个方法分别遵循下列舍入规则: ◎Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数: ◎Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数: ◎Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数(这也是我们在数学课上学到的舍入规则). 下面是使用这些方法的示例: alert(Math.ceil(25.9))
-
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.将字符串
随机推荐
- ES6新特性三: Generator(生成器)函数详解
- 微信小程序 仿美团分类菜单 swiper分类菜单
- 正则表达式字符类加深理解
- 55分钟学会正则表达式
- Nginx泛解析到子目录后自动判断有无public目录详解
- java 分布式与集群的区别和联系
- 浅析Java方法传值和传引用问题
- JS复制对应id的内容到粘贴板(Ctrl+C效果)
- php上传图片到指定位置路径保存到数据库的具体实现
- 用原生JS对AJAX做简单封装的实例代码
- 关于Android HTML5 audio autoplay无效问题的解决方案
- 不同发行版Linux操作系统如何实现共存
- JavaScript中解决多浏览器兼容性23个问题的快速解决方法
- Android应用开发中实现apk皮肤文件换肤的思路分析
- 使用map实现单词转换的实例分析
- asp.net基于HashTable实现购物车的方法
- BootStrap栅格系统、表单样式与按钮样式源码解析
- Java包含抽象方法的枚举类示例
- 解决Layui中templet中a的onclick参数传递的问题
- Java的外部类为什么不能使用private和protected进行修饰的讲解