文字列の計算式の計算結果を取得するには?

解決


キー  2007-03-30 17:34:26  No: 64831  IP: 192.*.*.*

こんにちは。表題の件で質問です。
1+2/3*4
のような文字列を与えて、その計算結果を取得する方法を探しています。

開発環境はVS2005 C#ですが
VBでもVCでも或いはWindowsで動作する他言語、他環境でも構いません。

http://dobon.net/vb/dotnet/programing/eval.html
こちらのDobonさんの記事を参考にしてみたところ
四則演算のような単純なものは対応できました。以下、サンプルです。

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //計算式
            string exp = "1/2*3/4";

            Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
            double result = (double)Microsoft.JScript.Eval.JScriptEvaluate(exp, ve);
            Microsoft.JScript.MathObject.sqrt(2);

            //結果を表示
            Console.WriteLine(result);
        }
    }
}

しかし、もっと複雑な演算をしたい場合
例えば、√や二乗や三角関数?などなど
この方法の延長で対応させる解が見つかりませんでした。

http://www.katamari.jp/index.php?dev%2Fvb%2F%CA%B8%BB%FA%CE%F3%A4%CE%B7%D7%BB%BB%BC%B0%A4%CE%B7%D7%BB%BB
こちらを参考に逆ポーランド記法に直して
自力で演算することも考えましたが
できれば文字列から1発で計算結果を取得したいです。
アドバイス宜しくお願いします。

編集 削除
YuO  2007-03-30 18:41:56  No: 64832  IP: 192.*.*.*

C#.NET掲示板は,
http://madia.world.coocan.jp/cgi-bin/csbbs/wwwlng.cgi
ですよ。

とりあえず,IronPython使うとか,適当なクラスでっち上げてICodeCompilerに放り込むとか……。

編集 削除
キー  2007-03-31 07:36:21  No: 64833  IP: 192.*.*.*

YuOさんご指摘ありがとうございます。
C#専用の方へ移動します。失礼致しました。

編集 削除