0

我知道有使用 AS3 评估数学公式的解决方案:使用 MathParser,或将其移植到 JavaScript 和许多其他工具。

但是,如果我想手动评估数学公式,而不使用任何内置库怎么办?
它应该能够解决这个问题:1+(2*5+(9-6)/(5-2))+(6/2)*5

这就是我打算这样做的方式:

  1. 用左括号和右括号分隔字符串文字。
  2. 根据优先级对结果进行排序(通过从左到右扫描字符串,每次看到左括号时优先级增加。每次看到右括号然后降低)。
  3. 计算具有最高优先级的结果。

但是,我还没有能够成功地实现它。

4

1 回答 1

0

使用Shutting-yard 算法将您的表达式转换为逆波兰表示法并对其进行评估。第二篇文章中有一个很好的例子。

于 2012-09-29T11:32:02.123 回答