我正在尝试制作类似计算器的程序,其中一个人可以在文本框中输入计算,它会将该计算转换为int
的结果,这是我的所有但是它不起作用多
string calcStr = textBox1.Text;
int result = calcStr;
任何不太复杂的建议?
答案 0 :(得分:2)
如果我理解问题正确,您希望能够从文本框中解析类似1 + 3 + 4的表达式,并根据输入执行计算。这实际上比人们想象的更艰巨。
一种常见的解决方案是使用Shunting-yard算法来解析表达式。有关详细信息,请参阅http://en.wikipedia.org/wiki/Shunting-yard_algorithm。
答案 1 :(得分:1)
使用NCalc进行此类工作......它是免费的,附带源代码并完成所有繁重工作(解析数学表达式等)并为您提供计算结果。
答案 2 :(得分:0)
如果您尝试简单地从字符串中解析出数字,请使用类似
的函数Int32.Parse(string)
如果你需要拿出一个EQUATION,比如 “3 + 4/2” 那么你需要一次提取一个角色并确定它是什么。
就像字符串一样 “32 + 4/12” 您必须循环遍历字符串中的每个字符,并尝试将当前字符解析为数字。 这是一个测试它是否是数字的函数。或者只是检查它的ascii值。
如果成功,请取出当前数字加上下一个数字,然后再次尝试,直到找到一个非数字字符。 现在您可以提取您的数字。 根据您允许的数学运算符检查非数字的字符。其他任何事情都会引发错误。
一旦你可以提取所有整个等式,你可能不得不做类似Stack操作的事情来评估它。我相信我的汇编课你将一个数字和操作符推到堆栈中,然后从顶部顶部弹出一个,用运算符之间的下一个数字评估前一个数字。
我希望这就是你所说的。祝你好运!