oa考勤管理系统解决方案,考勤系统操作流程
1100
2022-05-30
今天飞哥推荐一个前端在计算上面必定会用到的类库:mathjs。
电商系统中,订单、库存中有数字等加减乘除算术,还有做工业计算的,前端怎么算也不对,我们先看看不对的例子。
JS常见加减乘除算不对的例子
加法算术:0.1+0.2
console.log(0.1+0.2); 结果是:0.30000000000000004
减法算术:1-0.9
console.log(1-0.9); 结果是:0.09999999999999998
乘法算术 4.10*100
console.log(4.10*100); 结果是:409.99999999999994
除法法算术 6.10/0.1
console.log(6.10/0.1); 结果是:60.99999999999999
超过9007199254740992的大数加法
console.log(9007199254740992+1); 结果是9007199254740992
javaScript 浮点数运算结果不对,因浮点数的存储问题导致计算结果不对,解决方案是引入数学库math.js,在线上项目中表现很优秀。
math.js 介绍
Math.js是一个用于JavaScript和Node.js的扩展数学库。它具有支持符号计算的灵活表达式解析器,大量内置函数和常量,并提供了集成的解决方案来处理不同的数据类型,例如数字,大数,复数,分数,单位和矩阵,强大且易于使用。
官网:https://mathjs.org/
Github代码库:https://github.com/josdejong/mathjs
文档:https://mathjs.org/docs/index.html
特征
支持数字,大数,复数,分数,单位,字符串,数组和矩阵。
与JavaScript的内置Math库兼容,Math用法,一样,门槛低
包含一个灵活的表达式解析器。
进行符号计算。
带有大量内置函数和常量。
也可以用作命令行应用程序。
在任何JavaScript引擎上运行。
很容易扩展。
开源。
帮助使用教程:
1、传统使用,引入math.js
npm安装
npm install mathjs
2、ES modules
import { sqrt } from 'mathjs' console.log(sqrt(-4).toString()) // 2i
创建配置
import { create, all } from 'mathjs' // create a mathjs instance with configuration const config = { epsilon: 1e-12, matrix: 'Matrix', number: 'number', precision: 64, predictable: false, randomSeed: null } const math = create(all, config) // read the applied configuration console.log(math.config()) // change the configuration math.config({ number: 'BigNumber' })
3、Node.js
const { sqrt } = require('mathjs') console.log(sqrt(-4).toString()) // 2i
math.js 常用数学功能
math.js 大数功能
javascript
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。