首页 > 怎样实现计算器的操作

怎样实现计算器的操作

在用php把计算器的界面做出来后,不知道怎样实现计算


可以先将中缀表达式转换为后缀表达式,再进行计算。


。。。。无非就是传值计算而已,有什么难


这个问题如果处理的好的话,你需要了解很多知识, 其中会涉及到AST(抽象语法树)和词法分析; 但是如果简单来说也不难实现; 我用python写了一个例子, 供你参考:

#仅支持加减乘除, 不考虑其他预算符; 有括号的情况也很容易推广出来;
def evaluation(expression):
    if '-' in expression:
        left,_,right = expression.partition('-') #partition把"1-2"变为数组['1','-','2']
        return evaluation(left) - evaluation(right)

    if '+' in expression:
        left, _, right = expression.partition('+')
        return evaluation(left) + evaluation(right)

    if '*' in expression:
        left, _, right = expression.partition('*')
        return evaluation(left) * evaluation(right)

    if '/' in expression:
        left, _, right = expression.partition('/')
        return evaluation(left) / evaluation(right)

    if '.' in expression:
        return float(expression)
    return int(expression)


if __name__ == '__main__':
    print evaluation("3/2.0+10")

λ  ~/  python x.py 
11.5

你只要注意,必须优先抽取低优先级运算符;

【热门文章】
【热门文章】