Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中使用System.Data.Compute()计算sin#_C# - Fatal编程技术网

C# 如何在C中使用System.Data.Compute()计算sin#

C# 如何在C中使用System.Data.Compute()计算sin#,c#,C#,我是新来的!我是C#的新手。我的一个朋友向我挑战,要我发明科学计算器。我在这里搜索并找到了一个简单的方法——使用System.Data library。例如,我们有: string math = "5 + 3 * 3"; string answer = new DataTable().Compute(math, null).ToString(); 这对于基本表达式来说非常简单,但我似乎找不到一种方法使计算器能够计算sin,因为e.t.c.有人有想法吗 附言:我英语不好,所以请原谅我看看数学课,

我是新来的!我是C#的新手。我的一个朋友向我挑战,要我发明科学计算器。我在这里搜索并找到了一个简单的方法——使用System.Data library。例如,我们有:

string math = "5 + 3 * 3";
string answer = new DataTable().Compute(math, null).ToString();
这对于基本表达式来说非常简单,但我似乎找不到一种方法使计算器能够计算sin,因为e.t.c.有人有想法吗


附言:我英语不好,所以请原谅我看看数学课,但是这样的东西应该适合你

    string math = "5 + 3 * 3";
    string answer = new DataTable().Compute(math, null).ToString();
    answer = Math.Sin(Convert.ToDouble(answer)).ToString();

感谢Mat J告诉我有关mXparser的信息!我找到了一种不用修改很多代码就可以计算的方法

以下是mXparser:

以下是代码的更改方式: 它是:

现在是:

string math = "5 + 3 * 3";
Expression e = new Expression(math);
math = e.calculate();
唯一的一点是,它可以与表达式而不是字符串一起工作,但它仍然非常容易和简单


我要感谢大家的快速回答!你真的帮了我的忙

DataTable
及其方法旨在对行和列进行操作,而不是用于科学计算。可用的选项是并且仅限于类似sql的表达式。我知道这一点。我只是想问一下这是否可能,因为我已经用这种方法构建了计算器。我不认为这是可能的,也许你可以为此目的看一下。你链接的这个库是否适用于C#,因为我在页面上没有看到它?编辑:我看到上面写的是.NET,所以是的,这对你未来的编程生涯来说是一个教训:不要滥用东西来达到它们不是为之设计的目的。名称
System.Data
已经泄露了它,它不是用来计算的。像那样的事情以后可能会回来咬你的屁股。编写计算器是相当复杂的,除非您想编写自己的解析器,但如果您想使用默认解决方案,请使用一个用于进行数学运算而不是操作数据的解决方案。很高兴知道,请考虑包含链接和示例代码段,以便其他人可以使用它。
    You can use the System.Math library. But System.Data library is related to ado.net operation. 
Example:
    string input=90
    var output =System.Math.Sin(Convert.ToDouble(input))); 
    output =System.Math.Cos(Convert.ToDouble(input))); 
    You can use the System.Math library. But System.Data library is related to ado.net operation. 
Example:
    string input=90
    var output =System.Math.Sin(Convert.ToDouble(input))); 
    output =System.Math.Cos(Convert.ToDouble(input)));