C# 制作一个动态计算器
我想做一个计算器。 我现在的密码是C# 制作一个动态计算器,c#,calculator,C#,Calculator,我想做一个计算器。 我现在的密码是 string input; input = Console.ReadLine(); List<string> numbers = new List<string>(); string curNumber = ""; foreach (char c in input) {
string input;
input = Console.ReadLine();
List<string> numbers = new List<string>();
string curNumber = "";
foreach (char c in input)
{
if (c =='+'|| c =='-'||c =='/'||c =='*')
{
numbers.Add(curNumber);
curNumber = "";
}
else
{
curNumber += c.ToString();
}
}
字符串输入;
input=Console.ReadLine();
列表编号=新列表();
字符串curNumber=“”;
foreach(输入中的字符c)
{
如果(c='+'| | c='-'| | c='/'| | c=='*'))
{
数字。添加(curNumber);
curNumber=“”;
}
其他的
{
curNumber+=c.ToString();
}
}
现在我不知道我该如何处理这些数字。
例如,如果输入为:20+3+13-17。
我如何计算这些数字?
你将如何在我的代码中实现这种逻辑
var res = new DataTable().Compute("1-2/3*4", null);
编辑:另请注意,您可以使用数据表中的字段执行诸如对名为“总计”的列求和等功能
另一个选项是使用IronPython和IronRuby:
var res = new IronPython.Hosting.PythonEngine().EvaluateAs<double>("1-2/3*4");
var res=new IronPython.Hosting.PythonEngine().EvaluateAs(“1-2/3*4”);
我的首选选项是使用hack:使用现有方法DataTable.Compute
:string input=“100+20+3-17+2+7/3+3%2+100*10”;var dt=新的System.Data.DataTable();var结果=dt.Compute(输入,空)代码>//result=1111.33333loool这么简单?我不敢相信这是如此简单:你能告诉我这里发生了什么,或者在解释的地方给我发一个链接吗?如果你发现任何答案都有用,请标记为“答案”,这样其他用户就会知道有解决方案。你能给我解释这里发生了什么,或者在解释的地方给我发一个链接吗?
var res = new IronPython.Hosting.PythonEngine().EvaluateAs<double>("1-2/3*4");