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

已有字符串公式:stringstrExpress="a+b*100-c";和三个文本控件:txtA、txtB、txtC现在要依照公式得到结果:txtA值+txtB值*10... 已有
字符串公式: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可以不用声明就能直接用,故没考虑你的方法。
展开
 我来答
百度网友5b09373a1
推荐于2016-07-22 · TA获得超过130个赞
知道答主
回答量:269
采纳率:0%
帮助的人:0
展开全部
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

看下面这个地址

参考资料: http://www.w3school.com.cn/js/jsref_eval.asp

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lum2005cn
2010-02-03 · TA获得超过2928个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:107万
展开全部
写个堆,把符号一个一个堆进去,替换一下a、b、c等,在判断一下数学符号,生成结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seekel
2010-02-03 · TA获得超过201个赞
知道答主
回答量:199
采纳率:0%
帮助的人:169万
展开全部
int a=Convert.ToInt32(txtA.Text.Trim());
int b=Convert.ToInt32(txtB.Text.Trim());
int c=Convert.ToInt32(txtC.Text.Trim());
string strExpress=Convert.ToString(a+b*100-c);

string strExpress=Conver.ToString(Convert.ToInt32(txtA.Text.Trim())+Convert.ToInt32(txtB.Text.Trim())*100-Convert.ToInt32(txtC.Text.Trim()));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eric_3344
2010-02-03 · TA获得超过645个赞
知道小有建树答主
回答量:1069
采纳率:53%
帮助的人:409万
展开全部
int a= Convert.ToInt32(txtA.Text);
int b= Convert.ToInt32(txtB.Text);
int c= Convert.ToInt32(txtC.Text);
int s1=a+b*100-c;
int s2=a+b+c;
//....自己定义表达式
string strExpress=s1.toString();
//类似这样根据表达式调
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aino77
2010-02-03 · TA获得超过920个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:287万
展开全部
用System.CodeDom中的Compiler处理字符串公式.初学会有点看不懂,不过你复制里面的函数就可以用了.
------
参考:
http://blog.joycode.com/ninputer/archive/2005/04/05/47003.aspx
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式