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

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: C#で関数を含む計算式文字列を処理して計算する /kiku
 
上記関連ツリー

C#で関数を含む計算式文字列を処理して計算する / 星は昴 (24/11/20(Wed) 12:07) #103439 ←Now
Re[1]: C#で関数を含む計算式文字列を処理して計算する / kiku (24/11/20(Wed) 13:02) #103440
  └ Re[2]: C#で関数を含む計算式文字列を処理して計算する / 星は昴 (24/11/20(Wed) 14:59) #103441 解決済み
    └ Re[3]: C#で関数を含む計算式文字列を処理して計算する / くま (24/11/20(Wed) 15:40) #103442
      ├ Re[4]: C#で関数を含む計算式文字列を処理して計算する / くま (24/11/20(Wed) 15:53) #103443 解決済み
      │└ Re[5]: C#で関数を含む計算式文字列を処理して計算する / 星は昴 (24/11/20(Wed) 18:47) #103444 解決済み
      └ Re[4]: C#で関数を含む計算式文字列を処理して計算する / 星は昴 (24/11/21(Thu) 15:17) #103445
        └ Re[5]: C#で関数を含む計算式文字列を処理して計算する / kiku (24/11/21(Thu) 15:39) #103446
          └ Re[6]: C#で関数を含む計算式文字列を処理して計算する / 星は昴 (24/11/21(Thu) 15:55) #103447 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信