只能实现加减乘除的简单运算
你放一个TextBox控件,命名为txt1,你每次输入,直接赋值给txt1即可,比如你输入了123.12,那么txt1的值就为123;
在你按下+ -* /的时候,你定义一个全局变量比如为str_last,记录txt1的值,然后把txt1的值清空,然后把你按下的值赋值给txt1,比如你又按下了200,那么txt1的值就为200;
在你按=的时候,用 str_last加上当前txt1的值就可以了,得到312.12赋值给txt1.
代码我就不写了,你先试试。
计算器的复合表达式实际上很难处理的,有时候你可能需要搭配正则甚至是一些针对单个字符进行处理的字符串处理方法才能解析;所以我建议你如果赶时间开发完成的话可以去网上找找现有的库。
LS 的处理方法都可以将字符串转换为浮点数,但是问题在于如果字符串不是数字的话可能会比较堪忧,所以你可以这样做:
using System.Text;
using System.Text.RegularExpressions;
main 方法体内:
Double value;
if(Regex.IsMatch(字符串变量, @"^\d+\.\d+$"))
value = Double.Parse(字符串变量);
double.Parse(str);即可将字符转成数字(double型),或者用Convert.ToDouble(str);/Convert.ToInt32(str);
提示一下,计算器最好不要这样做,很麻烦,你可以调用Py或者Js的Eval函数,这样很复杂的运算也能解决,例如eval('(1+2*3+4)/5')可以得到结果2.2