如何使用公式(字符串格式)来计算数值?

问题描述 投票:-3回答:1

如何从输入字段中接受一个公式来计算一个值?例如 "(a+b)/100", "(a*b)/300" "(b/a)",等等。

结果应该是计算值。所以,给定 A = 100; B = 200; 而公式为 "(a+b)",结果应该是 300.

javascript calculator calc
1个回答
0
投票

你可以使用 eval 这实际上是不推荐的。在函数内部创建一个对象,其中运算符名称为键,符号为值,如 +*. 在调用函数时,传递一个有两个值和运算符的对象。

function doCalculation({
  val1,
  val2,
  operation
}) {
  const obj = {
    add: '+',
    multiply: '*'
  }
  return parseInt(eval(`${val1}${obj[operation]}${val2}`), 10) / 100
}

console.log(doCalculation({
  val1: 100,
  val2: 200,
  operation: 'add'
}))

0
投票

我建议使用一个现有的库来解析& 评估方程。有相当多的库可以在 npm.

例如 expr-eval:

const parser = new exprEval.Parser();
const expr = parser.parse("(a+b)/100");
console.log(expr.evaluate({ a: 100, b: 200 })); // 3
console.log(expr.evaluate({ a: 200, b: 200 })); // 4
<script src="https://unpkg.com/[email protected]/dist/bundle.min.js"></script>

不仅仅是比普通人更强大 eval-基于的方法,但与javascript相比,它也使用了更多面向数学的语法。

© www.soinside.com 2019 - 2024. All rights reserved.