永发信息网

C#如何将字符型表达式转化为数字表达式

答案:6  悬赏:80  手机版
解决时间 2021-03-14 08:30
  • 提问者网友:眉目添风霜
  • 2021-03-14 01:25
已有
字符串公式:string strExpress = "a+b*100-c";
和三个文本控件:txtA、txtB、txtC

现在要依照公式得到结果:txtA值+txtB值*100-txtC值
请问,如何将字符串型的公式转换为由变量组成C#表达式,即:a+b*100-c

该问题不好解决,不能看着字符串直接手动写a+b*100-c表达式后,再把文本值转进去计算。而是由字符串型的公式动态的得到C#表达式,因为公式有可能是“a+b+c”或是“a-b-c”之类的。
问题已解决,谢谢g2ok的思路。也谢谢 flashcjy提供的连接。

这里是我想要实现的:
http://blog.csdn.net/Faks8622/archive/2010/02/06/5294559.aspx

像seekel没有会意的同志们,请以后不要没有理解问题就随便回答了哦!我说了是动态的公式,不能直接在代码中手动写表达式的。
lum2005cn 的思路我也想过,但太复杂,要编译原理很NB。
aino77提供的信息也很有用,但公式中可定义变量,JS可以不用声明就能直接用,故没考虑你的方法。
最佳答案
  • 五星知识达人网友:玩世
  • 2021-03-14 02:17
JavaScript eval() 函数

例子:
<script type="text/javascript">

eval("x=10;y=20;document.write(x*y)")

document.write(eval("2+2"))

var x=10
document.write(eval(x+17))

</script>

输出:
200
4
27

看下面这个地址
全部回答
  • 1楼网友:猎心人
  • 2021-03-14 06:38
这样说吧,你想达到什么效果?是在三个文本框输入数字后,根据运算符进行运算? 是我们会错意了吧。能不能把需求讲出来?
  • 2楼网友:拜訪者
  • 2021-03-14 05:03
看看这,或许对你有帮组http://www.35hunan.com/Portals/cgNs/News/20091222/News_3768.htm
  • 3楼网友:西风乍起
  • 2021-03-14 04:08
由于是教育类,只能输入100个字符,下次这种问题最好归入编程类,可输入1000字符。有个思路。如没括号的式子:5+3*1-6/3就是分两次遍历,第一次遇到*、/直接运算为数值,第二次加减运算。括号可用函数写。又满了无语
  • 4楼网友:你哪知我潦倒为你
  • 2021-03-14 03:46
用System.CodeDom中的Compiler处理字符串公式.初学会有点看不懂,不过你复制里面的函数就可以用了. ------ 参考: http://blog.joycode.com/ninputer/archive/2005/04/05/47003.aspx
  • 5楼网友:廢物販賣機
  • 2021-03-14 02:52
单个进行强制转换。 Convert.Toint32(a)+Convert.ToInt32(b*100)-Convert.ToInt32(C)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯