有这样一个字符串,比如 2*3+(1+4/3) 怎么能计算出它的值呢?
原来的公式是a*b+(c+d/e),中间的字符是可以用数字迭代的

解决方案 »

  1.   

    val(a)*val(b)+(val(c)+val(d)/val(e)
    楼主试试
      

  2.   

    ScriptControl  控件附属于VB  6.0,如果安装后没有看到此一控件,可在光盘的\Common\Tools\VB\Script  目录底下找此一控件,  其文件名为Msscript.ocx  
     
    在工程中引用Microsoft  Script  Control  1.0  
     
    Dim  Sc  As  New  ScriptControl  
    Private  Sub  Form_Load()  
    Dim  Statement  As  String  
    Sc.Language  =  "vbscript"  
     
    Statement  =  "你的表达式"  
    Sc.ExecuteStatement  Statement  
    End  Sub  
    或者Option  Explicit  
    Private  Declare  Function  EbExecuteLine  Lib  "vba6.dll"  (ByVal  pStringToExec  As  Long,  ByVal  Unknownn1  As  Long,  ByVal  Unknownn2  As  Long,  ByVal  fCheckOnly  As  Long)  As  Long  '    API  
     
    Private  Function  ExecuteLine(sCode  As  String,  Optional  fCheckOnly  As  Boolean)  As  Boolean  
    ExecuteLine  =  EbExecuteLine(StrPtr(sCode),  0&,  0&,  Abs(fCheckOnly))  =  0  
    End  Function  
     
     
    Private  Function  result(ByVal  x  As  String)  As  Single  '计算表达式的结果  
    ExecuteLine  "dim  x  as  single"  
    ExecuteLine  "x=  "  &  x  
    ExecuteLine  "clipboard.settext  x"  '发送到剪切板  
    result  =  Clipboard.GetText  '从剪切板获取  
    Clipboard.Clear  '清空剪切板  
    End  Function  
     
     
    Private  Sub  Command1_Click()  
    Dim  x  As  String  
    x  =  "((((((((((1+1)*1)*(1+1))*1)*1)*1)*(1+1))*1)*1)*1)*2"  
    MsgBox  x  &  "="  &  result(x)  
    End  Sub