■103439 / ) |
C#で関数を含む計算式文字列を処理して計算する |
□投稿者/ 星は昴 (5回)-(2024/11/20(Wed) 12:07:32)
|
分類:[C#]
C# で関数を含む計算式文字列、たとえば
"(7+3)/2" "21^2" "sin(3.141592654/4)" "abs(-2)"
などを簡単に計算できるクラスを作成したいのですが、ネットを検索してもその方法がなかなか見当たりません。 https://dobon.net/vb/dotnet/programing/eval.html を見ましたが、リンク切れがあったり、解説が日本語ではないためよくわかりません。 具体的には
private void BtnCalc_Click(object sender, EventArgs e) { var S = label_A.Text; // S = "16^2/7" or "log(1.5)" …etc double x = 0; EasyCalc1 = new EasyCalc(); EasyCalc1.SetExpression(S); // 式文字列から木を作る double y = EGCalc1.GetValue(x, Err); // 木から値を計算する label_B.Text = y.ToString(); }
のように使える EasyCalc クラスのようなものを作りたいのです。 四則演算だけなら System.Data.DataTable が手軽でいいのですが・・・ 昔、Pascal (Delphi) で、そういうクラスを作ったのですが、ポインタを使っているのでそのまま移植するのは少し躊躇します。
|
|