DOBON.NET DOBON.NETプログラミング掲示板過去ログ

文字列で表現した数式を計算

環境/言語:[C# Xp .NetFramework1.0]
分類:[.NET]

例えば
"3*4+6/2-9%7"
…のような文字列の内容を、
数式として計算しその結果を得るメソッドを探している&作ろうとしているのですが、
MSDNで心あたりのキーワードは全て試してみたけれども見つからず、
「C# 文字列 数式」などでググってみましたが見つからず、
そういえばここに似たような過去ログがあったはず…と思ったのですがそれも見つからず、
作るしかないか、と覚悟を決めてみたものの、
足し算・引き算記号だけならば一文字ずつパースして
前から単純に計算していけばいいのですが、
掛け算記号など、演算順序が入れ替わる記号の扱いをどうすればいいのか悩んでいます。

当該機能を持つ関数や、
掛け算記号の演算順序が入れ替わる場合のよい処理の仕方をご存知の方は
教えてはいただけないでしょうか?
■No2483に返信(nissa.comさんの記事)
> 例えば
> "3*4+6/2-9%7"
> …のような文字列の内容を、
> 数式として計算しその結果を得るメソッドを探している&作ろうとしているのですが、
> MSDNで心あたりのキーワードは全て試してみたけれども見つからず、
> 「C# 文字列 数式」などでググってみましたが見つからず、
> そういえばここに似たような過去ログがあったはず…と思ったのですがそれも見つからず、
> 作るしかないか、と覚悟を決めてみたものの、
> 足し算・引き算記号だけならば一文字ずつパースして
> 前から単純に計算していけばいいのですが、
> 掛け算記号など、演算順序が入れ替わる記号の扱いをどうすればいいのか悩んでいます。
>
> 当該機能を持つ関数や、
> 掛け算記号の演算順序が入れ替わる場合のよい処理の仕方をご存知の方は
> 教えてはいただけないでしょうか?

http://www.microsoft.com/japan/msdn/academic/Articles/Algorithm/01/
上のページが参考になると思われます
ArAyさん、早速の返信、ありがとうございます。
まさしく、探していたものです。
これからサンプル解析して、勉強したいと思います。
本当にどうもありがとうございました!!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板