Javascript数学库

时间:2013-01-14 04:03:19

标签: javascript math formula

我正在开发一个项目,用户可以在其中定义要针对用户输入执行的公式。

在UI方面,用户可以输入varA和varB的值。 javascript代码应该拾取这两个值,将它们注入公式,如下所示:

varA + varB ** (1/2.0)

然后返回结果。

我面临的问题是某些操作(如上面举例说明的**)没有直接映射到javascript,不得不以某种方式将这些公式转换为它。是否有任何库可以实现这种我可以使用的东西?

修改:我找到了this,它完全符合我的要求(并合并^代替**,这是replace的距离。)

还有更好的吗?

2 个答案:

答案 0 :(得分:2)

您可以使用math.js库中的表达式解析器。虽然也使用^字符作为电源。

http://mathjs.org

使用示例:

var parser = math.parser();
parser.eval('a = 1.2 / (2.3 + 0.7)');   // 0.4
parser.eval('2 * a');                   // 0.8
parser.eval('5.08 cm in inch');         // 2 inch
parser.eval('sin(45 deg) ^ 2');         // 0.5
parser.eval('9 / 3 + 2i');              // 3 + 2i
parser.eval('det([-1, 2; 3, 1])');      // -7

答案 1 :(得分:0)

使用ES6,您可以执行以下操作:

let varA = 1
let varB = 5
const answer = varA + varB ** (1 / 2.0)

let varA = 1
let varB = 5
const answer = varA + varB ** (1 / 2.0)
const output = `${varA} + ${varB} ** (1 / 2.0) =\n${answer}`
document.querySelector('.output').innerHTML = output
.output {
  font-size: 1.5em;
}
<pre class="output"></pre>