计算字符串表达式的函数(AS版)

先废话几句:AS中的浮点数计算误差也真是很有趣,例如:6.4-6.3=0.100000000000001,这是在Flash 8中运行的结果,附图一张:

evalString 函数介绍:
evalString(expression:String) : Number

expression 为一个算术表达式,该函数将计算此表达式的值,并返回计算结果。此表达式仅限于简单的+、-、×、÷以及带括号的运算,表达式中不得有其他符号,包括空格。表达式中的数字不仅限于一位整数,也可为多位整数,甚至是小数

参数
expression:String – 一个字符串表达式。

返回
Number – 一个数值。

示例

var infix:String = “(48-20*(6.2-5))/(18-15)”;
trace(evalString(infix)); //output 8

函数算法思想

算法思想和上一篇《把中缀表达式转化为后缀表达式》