假设:
a b c d四个数
由用户在文本框中输入公式,并计算出结果。
涉及到的计算有+ - * / (),
例:
文本框内的内容如下(a*b+c)*c+(d-c)*b+5要如何对公式进行分析,并识别出不正确的公式,
比如输入了非法的字符,或某个数除以了0等等。
a b c d四个数
由用户在文本框中输入公式,并计算出结果。
涉及到的计算有+ - * / (),
例:
文本框内的内容如下(a*b+c)*c+(d-c)*b+5要如何对公式进行分析,并识别出不正确的公式,
比如输入了非法的字符,或某个数除以了0等等。
解决方案 »
- 如何在form中嵌入一个word编辑控件
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 改变c#窗体上关闭按钮的自动提示内容
- 老兄们啊,datagridview合计行真的这么难吗?不管做过没做过的,都进来看看。
- 要开发个彩票在线代购销售系统 ,请有此类经验的高手说说要注意的地方,和主要用到的技术
- 字符串转换的问题
- 在dataGrid里绑定了DateTimePicker控件后,显示值的问题,请大虾们帮忙看看
- *谁在研究64位程序设计*
- Datagrid中怎样实现快捷键
- 调试好几天了,始终没有解决
- 请问.NET 类库能转换图片格式吗?
- C#实现TCP/IP连接方式,向指定机器指定端口发送/接收程序(附实现代码)
- 用PrintDocument打印字符串内容,怎样提高打印速度
using System;
using System.Xml;
using System.Xml.XPath;
using System.Text;namespace Wuyh
{
/// <summary>
/// 简单转换类
/// 计算字符表达式
/// </summary>
public class Converts
{
/// <summary>
/// 计算字串表达式的值
/// </summary>
/// <param name="p_str">字符表达式如:1+2+3</param>
/// <returns></returns>
private Converts()
{
}
public static double Evaluate(string p_str)
{
double rtnValue=0;
XmlDocument doc = new XmlDocument();
XPathNavigator nav=doc.CreateNavigator();
try
{
rtnValue=Convert.ToDouble(nav.Evaluate(p_str));
}
catch
{
rtnValue=0;
}
return rtnValue;
}
}
}
/// 计算一个表达式的结果
/// </summary>
/// <param name="expression">表达式</param>
/// <returns></returns>
public static object Eval(string expression)
{
System.Data.DataTable table = new System.Data.DataTable();
System.Data.DataColumn Col = new System.Data.DataColumn("col1", typeof(string), expression);
table.Columns.Add(Col);table.Rows.Add(new object[] { "" });
return table.Rows[0][0];
}