如何转换一个字符串到数学表达式? 字符串解析呀,可以用笨辦法,看一下編譯原理的東西。也可以用javascript的parse來做。或用SQL,讓數據庫幫你算。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 引用Microsoft.JScript来实现的例子using System;using System.CodeDom.Compiler;using System.Reflection;using Microsoft.JScript;namespace OdeToCode.Utility{ public class Evaluator { public static int EvalToInteger(string statement) { string s = EvalToString(statement); return int.Parse(s.ToString()); } public static double EvalToDouble(string statement) { string s = EvalToString(statement); return double.Parse(s); } public static string EvalToString(string statement) { object o = EvalToObject(statement); return o.ToString(); } public static object EvalToObject(string statement) { return _evaluatorType.InvokeMember( "Eval", BindingFlags.InvokeMethod, null, _evaluator, new object[] { statement } ); } static Evaluator() { ICodeCompiler compiler; compiler = new JScriptCodeProvider().CreateCompiler(); CompilerParameters parameters; parameters = new CompilerParameters(); parameters.GenerateInMemory = true; CompilerResults results; results = compiler.CompileAssemblyFromSource(parameters, _jscriptSource); Assembly assembly = results.CompiledAssembly; _evaluatorType = assembly.GetType("Evaluator.Evaluator"); _evaluator = Activator.CreateInstance(_evaluatorType); } private static object _evaluator = null; private static Type _evaluatorType = null; private static readonly string _jscriptSource = @"package Evaluator { class Evaluator { public function Eval(expr : String) : String { return eval(expr); } } }"; }} int a=int.Parse("22");可以是a的值为22你可以用这个方法试一下 用convert.toint32()或是int.parse() Convert.ToInt32( System.Console.ReadLine());将指定的值转换为 32 位无符号整数 如果用数据库编程,可以用sql语句获得,如string s="3+2-5*0"; string strSql="select "+s+ "as aa";,然后查询sql语句就可以了。 C#中的dev控件,怎么获取gridcontrol过滤后的数据源 .net读取txt问题 弹出框多参数传递。。 C#利用webBrowser怎么显示网页中只想显示的部分? App domin 2个线程可以同时Append同一个文本文件吗? 有关于treeview控件的checked属性问题 api 接口问题 1个解决方案有好几个 数据库链接配置 怎样利用Dataset的writeXML写成这种形式的XML 为什么我用VS.NET C#写的软件只能在windows2003上运行? ReadLine()怎样直接度曲第3行的?有没有跳行函数?
using System.CodeDom.Compiler;
using System.Reflection;
using Microsoft.JScript;namespace OdeToCode.Utility
{
public class Evaluator
{
public static int EvalToInteger(string statement)
{
string s = EvalToString(statement);
return int.Parse(s.ToString());
} public static double EvalToDouble(string statement)
{
string s = EvalToString(statement);
return double.Parse(s);
} public static string EvalToString(string statement)
{
object o = EvalToObject(statement);
return o.ToString();
} public static object EvalToObject(string statement)
{
return _evaluatorType.InvokeMember(
"Eval",
BindingFlags.InvokeMethod,
null,
_evaluator,
new object[] { statement }
);
}
static Evaluator()
{
ICodeCompiler compiler;
compiler = new JScriptCodeProvider().CreateCompiler(); CompilerParameters parameters;
parameters = new CompilerParameters();
parameters.GenerateInMemory = true;
CompilerResults results;
results = compiler.CompileAssemblyFromSource(parameters, _jscriptSource); Assembly assembly = results.CompiledAssembly;
_evaluatorType = assembly.GetType("Evaluator.Evaluator");
_evaluator = Activator.CreateInstance(_evaluatorType);
}
private static object _evaluator = null;
private static Type _evaluatorType = null;
private static readonly string _jscriptSource =
@"package Evaluator
{
class Evaluator
{
public function Eval(expr : String) : String
{
return eval(expr);
}
}
}";
}
}
可以是a的值为22
你可以用这个方法试一下
或是
int.parse()