mathJS应用
最近开发遇到存计算公式在字段里,前端取出来使用的问题。本来想着使用eval计算字符串的,且不说eval本身,直接使用也涉及到js的精度问题(eg: 0.1+0.2)上网查到使用eval制作简单计算器,与这个问题思路相同,但是同样没有直接解决精度问题,后来看到mathjs既能解决eval问题又能解决精度问题,着实好用。
mathJS是一个广泛用于javascript和nodejs的数学库。
它具有支持符号计算的灵活表达式解析器,大量内置函数和常量,并提供了一个集成解决方案来处理不同的数据类型,例如数字,大数,复数,分数,单位和 矩阵。 强大且易于使用。介绍译自官网=》https://mathjs.org/
特点
1、支持数字,大数,复数,分数,单位,字符串,数组和矩阵。
2、与JavaScript的内置Math库兼容。
3、包含一个灵活的表达式解析器。
4、进行符号计算。
5、带有大量内置函数和常量。
6、也可以用作命令行应用程序。
7、在任何JavaScript引擎上运行。
8、很容易扩展。
9、开源。
1 // functions and constants 2 math.round(math.e, 3) // 2.718 3 math.atan2(3, -3) / math.pi // 0.75 4 math.log(10000, 10) // 4 5 math.sqrt(-4) // 2i 6 math.derivative('x^2 + x', 'x') // 2*x+1 7 math.pow([[-1, 2], [3, 1]], 2) 8 // [[7, 0], [0, 7]] 9 10 // expressions 11 math.eval('1.2 * (2 + 4.5)') // 7.8 12 math.eval('12.7 cm to inch') // 5 inch 13 math.eval('sin(45 deg) ^ 2') // 0.5 14 math.eval('9 / 3 + 2i') // 3 + 2i 15 math.eval('det([-1, 2; 3, 1])') // -7 16 17 // chaining 18 math.chain(3) 19 .add(4) 20 .multiply(2) 21 .done() // 14
具体使用详见官网,话说回来我是这样使用的。
1 // 设置math参数 2 math.config({ 3 number: 'BigNumber' 4 }); 5 let formulaStr = "0.1+0.2" 6 math.format(math.evaluate(formulaStr)) // 0.3 7
本文来自学习小花,作者:aixuexi666888,转载请注明原文链接:https://www.cnblogs.com/aixuexi666888/p/15551072.html