C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
掲示板トップ
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
解決済み
上記ツリーを一括表示
/
上記ツリーをトピック表示
上記の記事へ返信
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No103439 (星は昴 さん) に返信 > 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) で、そういうクラスを作ったのですが、ポインタを使っているのでそのまま移植するのは少し躊躇します。 >
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-