2012-05-08 23 views
0

私はユーザー入力の数学関数(例:Math.Sqrt(x)など)を読みたいテキストボックスを用意しています。C#:テキストボックスから関数に数学関数を渡す方法

機能をテストし、私はコンソールのために使用してきたコードは

static double f(double x) 
    { 
     double f; 
     f = Math.Sqrt(x); 
     return f; 
    } 

私はそれを変更するかどうかはわかりませんです。私は、文字列内のテキストボックスの内容を読み、としてその文字列を追加します私は文字列に適用すべき解析の種類f関数(静的なダブルF(ダブルエックス、文字列s)の二番目の引数?

+0

を見てみましょうか? – SimpleVar

+0

あなたは "C#の方程式パーサ"のためのGoogleをすることができます –

答えて

5

several formula parsersがそこにあなたが使用できることがあります。

基本的にはあなたが必要あなたの数式を評価する誰か/何か。

私は自分のプロジェクトでthis oneを使用しています。それはあなたのアプリケーションドメイン(「アプリケーションドメイン」)にそれぞれコンパイルされたコードを追加し、再びそれをアンロードするオプションはありませんので、私は何をないが使用することをお勧めしますがdynamic compilation of C# codeある

var ev = 
    new Eval3.Evaluator(
     Eval3.eParserSyntax.c,/*caseSensitive*/ 
     false); 

MessageBox.Show(ev.Parse("1+2+3").value.ToString()); 

のようにそれを呼び出すことができます。 (私が間違っているなら、私を訂正してください)。

+1

ありがとう、なぜ私はこれのようなものを探していないと思った。私はパーサーに一撃を与えます、ありがとう – user573382

0

テキストボックスからテキストを取得し、次のコードは、あなたのためにそれを行うだろう値で何かを行う方法でご興味のある方。 - あなたがテキストボックスに関数を入力したい場合はsqrt(40)あなたはこのプロジェクトをチェックする必要がありますhttp://www.codeproject.com/Articles/23061/MathParser-Math-Formula-Parser

http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.aspx

static double f(Textbox tb) 
{ 
    double f; 
    double x = Double.Parse(tb.Text); 
    f = Math.Sqrt(x); 
    return f; 
} 
関連する問題