以前用VB时有这样一个组件。C#不知道有没有现成的。要不自已写一个吧!不太难。

解决方案 »

  1.   

    方法一:堆栈操作
    方法二:数据库操作
    方法三:按照编译原理,对语句进行分析
        以前好像有过不少这类问题的帖子,不过.NET里我不知道有没有,但是其他开发语言里有,原理差不多。
      

  2.   

    exp -> exp op exp | (exp) | number
    op -> +|-|*|/根据以上语法规则,对表达式作一AST (抽象语法树)
    有了AST 作一次preorder 遍历就可求得表达式得值
      

  3.   

    或者用SQL查询
    select (1+2+3+4+5+6+7+8) as x;
    读x就可以了
      

  4.   

    private Excel._ExcelApplicationClass excelResult;
    excelResult = new Excel._ExcelApplicationClass();excelResult.Evaluate(getValue)需要引用excel.dll,excelOffice 2000里就有,在 vs.net 命令行执行如下操作,就可得到你要的三个文件:
    Tlbimp EXCEL9.OLB 即可得到excel.dll
      

  5.   

    to lexchou
    又是你!,你真得认为你的idea 很妙吗?我看你一传播了N次了,要是没有数据库怎么办?
    再说,就是有数据库,数据库本身还是得作语法分析,表达式求值,还加上网络开销,
    中间层调用开销,你以为性能会很好吗?
      

  6.   

    我没说我的idea很妙啊,我只是把我知道的能解决这个问题的最容易的方法说出来而已。再说我刚刚从Delphi转到.net来,这个ID也是刚刚注册的,就今天发贴稍微多一点,何来“传播了N次”,这种方法只不过是我在.net板第一次说。再说现在能运行.net的哪台机器没装ADO?随便带一个空数据库,要个什么网络开销?中间层开销又多大?语法分析已经包含在表达式求值内,哪种解决这类问题的方法不需要进行语法分析?也许安全方面有问题,但楼主题这个问题不像是做对安全要求很高的东西,怕个bird。
    我自己做的一个开源项目(也是我转.net后第一个作品)基本上快做完了,就自带一个表达式计算的库(自己写的,支持自定义函数,自定义变量,常量,宏,复数,向量,三角函数、双曲函数,IO操作),这几天把一个设计上的问题解决了就可以发布了,文档都写完了。我没猜错的话,你是bsbs吧
      

  7.   

    簡單的一個語句,用javascript:
    <P><INPUT id="t1" type="text"><INPUT type="button" value="Button" onclick="javascript:t2.value=eval(t1.value);"><INPUT id="t2" type="text"></P>
      

  8.   

    使用javascript下的eval方法也行,
    也可以采用逆波兰式实现,一般的科学计算器实现的差不多。
      

  9.   

    zhzuo(秋枫)
    使用javascript下的eval方法也行,
    也可以采用逆波兰式实现,一般的科学计算器实现的差不多。可以帮说一下“逆波兰式”吗?
      

  10.   

    select语句 也不失为一种好办法。