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可以不用声明就能直接用,故没考虑你的方法。 展开
字符串公式: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可以不用声明就能直接用,故没考虑你的方法。 展开
10个回答
展开全部
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
看下面这个地址
例子:
<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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写个堆,把符号一个一个堆进去,替换一下a、b、c等,在判断一下数学符号,生成结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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()));
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()));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
//类似这样根据表达式调
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();
//类似这样根据表达式调
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用System.CodeDom中的Compiler处理字符串公式.初学会有点看不懂,不过你复制里面的函数就可以用了.
------
参考:
http://blog.joycode.com/ninputer/archive/2005/04/05/47003.aspx
------
参考:
http://blog.joycode.com/ninputer/archive/2005/04/05/47003.aspx
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询