2017-03-12 35 views
2

ここは新しいです!私はC#の初心者です。私の友人の一人が私に科学的な電卓を作ろうと挑戦しましたSystem.Dataライブラリを使用して簡単にここを検索して簡単に見つけました。たとえば、私たちは、この持っている:これは基本的な表現とかなり簡単に働いC#でSystem.Data.Compute()を使用してsinを計算する方法

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

が、私はどのように計算がe.t.c. COS、罪を計算することができるようにするための方法を見つけるように見えることはできません誰もがアイデアを持っていますか?

PS:私は英語でいいじゃないので、plzは私を許して

+0

'DataTable'とそのメソッドは、科学計算のためではなく、行と列を操作するためのものです。利用可能なオプションは[こちらに記載されています](https://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(v = vs.110).aspx)であり、SQLのような式に限定されています。 –

+0

私はそれを認識しています。私はそれが可能かどうかを尋ねたがっている。私はすでにそのような方法で電卓を作っているからだ。 –

+1

私はその可能性は考えていませんが、この目的のために[専門の図書館](http://mathparser.org)を見ることができるかもしれません。 –

答えて

1

は、Mathクラスを見てみましたが、このような何かがあなたのために言っ用マットJへ

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

おかげで動作するはずです私はmXparserについて!私は多くのコードを変更することなくそれを計算する方法を見つけました!ここで

はmXparserは次のとおりです。http://mathparser.org/

これは、コードがどのように変化したかである: それがあった:

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

今、それは次のとおりです。

string math = "5 + 3 * 3"; 
Expression e = new Expression(math); 
math = e.calculate(); 

唯一の事はそれということです文字列ではなく式で動作しますが、それでもやはり簡単で簡単です!

皆様の迅速な回答に感謝したいと思います!あなたは本当に私を助けました!

+1

他の人がそれを利用できるように、リンクとサンプルコードスニペットを含むConsideを知ってうれしいです。 –

1
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))); 
関連する問題