C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■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) で、そういうクラスを作ったのですが、ポインタを使っているのでそのまま移植するのは少し躊躇します。

返信 編集キー/


管理者用

- Child Tree -