本文实例讲述了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.freexyz.cn/code/HtmlJsRun测试运行效果。
PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:
在线一元函数(方程)求解计算工具:
http://tools.freexyz.cn/jisuanqi/equ_jisuanqi
科学计算器在线使用_高级计算器在线计算:
http://tools.freexyz.cn/jisuanqi/jsqkexue
在线计算器_标准计算器:
http://tools.freexyz.cn/jisuanqi/jsq
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript操作DOM技巧总结》及《JavaScript字符与字符串操作技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
暂无评论内容