把字符串当公式计算,并得到他的结果如字符串为200*100

      我们在做人员工资的时候,因为每一个员工的业绩不同,那当然领导的工资也不同,我们为了让用户用的方便,我们可以让他输入公式,不如200*100的公式,我们村这条记录肯定是string类型存储,那我们怎么使程序能读懂这个公式呢,一种想法是利用正则表达式,可是我们也要考虑运算符的优先级问题,有没有更方便的方法呢?问了问qq群里的人,得到一种更方便的方法,js中有一个eval函数,它的作用是,如果参数时数字表达式的话,他就自动运算得到结果,那不是正是我们想要的结果吗?可是我们写成的是*.js文件。有时候我们想在.cs文件调用,那怎么办呢?Thinking!Vs中不是有一个JScript吗,他带了jsc.exe的工具,能够把js文件编译成.exe Or  .dll,那不是整合我意吗!所以进入到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下找到jsc.exe,输入jsc.exe /out:E:/Eval.dll e:/Eval.js 命令行,即可生成Eval.dll.那么有了这个dll那么接下来的就好说了,回到我们的Vs中右击点击引用,把这个dll引用到我们的解决方案中,然后再.cs代码文件中写入
Response.Write(CustomEval.eval(200 * 10+100/10-10));
即可,Eval.js文件的内容是:
1class CustomEval
2{
3  static function eval(strExp)
4  {
5     return eval(strExp);
6  }

7
8}
 
  
posted @ 2007-08-30 15:38  兴百放  阅读(794)  评论(2编辑  收藏  举报