我正在尝试用C#构建一个计算器.现在我想知道是否可以进行文本字段内的计算.例如,用户进入文本字段(2*3)+6.现在我如何告诉我的脚本计算它然后输出结果?
在表格的"SumStrings"列中,我有像"1 + 2"或"1 + 2-3"这样的字符串:
SumStrings
1+2
1+2-3
Run Code Online (Sandbox Code Playgroud)
换一种说法:
DROP TABLE IF EXISTS #theSums;
CREATE TABLE #theSums (SumStrings VARCHAR(25))
INSERT INTO #theSums
values
('1+2'),
('1+2-3');
Run Code Online (Sandbox Code Playgroud)
如何从此表中选择以获得这些总和的结果?即如果表中只有上面两个字符串,那么选择的结果应该是3和0
这个问题字符串表达式被评估为数字主要是为了创建一个函数我只想从表中选择一个简单的脚本
有没有办法解析vb.net中的字符串(比如,内置方法),可以像Eval一样进行数学运算吗?例如,3 +(7/3.5)作为字符串将返回2.
我不是要求你为我编写代码,我只是想知道是否有内置的方法来执行此操作,如果没有,我将自己编写代码.
我可以打赌它不能自己解析像Sin(90)这样的东西,我明白需要用Math.Sin(90)代替它.
如果有内置方法,你如何使用它?
可能重复:
.NET中是否有字符串数学计算器?
有没有办法转换操作员代码而不进行检查"+", "-", "*", "/"然后传递值?
using System;
namespace ConsoleApplication1
{
class Program
{
private static void Main(string[] args)
{
string operator = "+";
int inputOne = 2;
int inputTwo = 5;
Console.WriteLine(Result(inputOne, inputTwo, operator));
Console.ReadLine();
}
public static string Result(int one, int two, string computeOperator)
{
if (computeOperator == "+")
{
return (one + two).ToString();
}
if (computeOperator == "-")
{
return (one - two).ToString();
}
//and so on...
return "0";
}
}
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
.NET中是否有字符串数学计算器?
C#可以将数学表达式(如y = 3*x + 3)解析为字符串吗?如果是的话,好吗?我感谢您的帮助.
有人知道在c#中评估像这样的字符串公式的最佳方法:(123/2*15 + 22).
我已经读过我应该使用ICodeCompiled,但是还没有能够找到任何好的实现来完成这个非常简单的事情.
任何建议表示赞赏.
我正在尝试计算字符串的内容.
我有1个字符串,其中包含例如:MyString ="1 + 5/2*4-2"现在我想计算该字符串的结果
我是c#的新手
我的代码:
string som = "";
int myInt;
private void getText_Click(object sender, EventArgs e)
{
string s = (sender as Button).Text;
som = som + s;
Console.WriteLine(som);
string[] words = som.Split(' ');
foreach (string word in words)
{
Console.WriteLine(word);
myInt += Convert.ToInt32(word);
}
Console.WriteLine(myInt);
Run Code Online (Sandbox Code Playgroud)
我试过这个答案:
double result = (double) new DataTable().Compute("1+1*4/2-5", null);
int i = (int) result; // -2
Run Code Online (Sandbox Code Playgroud)
但后来我得到了System.InvalidCastException:
指定演员表无效.
我必须计算将第一个数字、第二个数字和操作作为参数的方法。
public static double Calculate(double firstNumber, double secondNumber, string operation)
{
var result = default(double);
switch (operation)
{
case "+":
result = firstNumber + secondNumber;
break;
case "-":
result = firstNumber - secondNumber;
break;
case "*":
result = firstNumber * secondNumber;
break;
case "/":
result = firstNumber / secondNumber;
break;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
现在我正在使用一个开关。当操作是“+”时,我添加数字。
如何让计算方法将任何算术运算符作为参数,而不必为其添加特定案例?
我的想法最终是这样的:
public static string Calculate(double firstNumber, double secondNumber, string operation)
{
return firstNumber operation secondNumber;
}
Run Code Online (Sandbox Code Playgroud)
我从这个问题 …
假设程序接收输入字符串"8*10+6/2"并且应该输出83,在这种情况下.如何处理运营商?
我可以将字符串切成单个字符串,然后检测它是数字还是运算符.如果是操作员我可以将其转换为int.但我不知道如何处理运算符,以便计算工作.