我的主要意见是建立一个能够在'队列'中进行计算的计算器。
实施例:
用户在txtZahl
中输入第一个号码,然后点击其中一个按钮。所需的计算应保存在列表numbers
中,并且应清除txtZahl
。用户现在可以输入新号码并按下按钮等。
当用户点击btnEqu
时,foreach应该从列表中进行每个计算并进行计算。如果这样做,结果应显示在txtZahl
。
计算不正确。例如,我得到0.00作为4-3的结果。
我知道额外课程的想法不是最好的方法,但我想保留它,看看老师对此的看法。 谢谢你的帮助!
代码:
Form1.cs的
double ergebniss = 0;
Boolean firstRun = true;
List<Rechnung> numbers = new List<Rechnung>();
Rechnung.RechenArt lastArt;
private void btnMinus_Click(object sender, EventArgs e)
{
if (isValid())
{
if (firstRun)
{
ergebniss = Convert.ToDouble(txtZahl.Text);
}
numbers.Add(new Rechnung(Convert.ToDouble(txtZahl.Text), Rechnung.RechenArt.Subtraktion));
lastArt = Rechnung.RechenArt.Subtraktion;
clearAndFocus();
}
}
private void btnEqu_Click(object sender, EventArgs e)
{
foreach (Rechnung r in numbers)
{
switch (r.getArt())
{
case Rechnung.RechenArt.Subtraktion:
{
ergebniss -= r.getNumber();
break;
}
}
}
txtZahl.Text = ergebniss.ToString("f2");
}
}
答案 0 :(得分:0)
if (firstRun)
{
ergebniss = Convert.ToDouble(txtZahl.Text);
firstRun = false;
return;
}
首先你忘记了 firstRun = false;之后
然后我建议你只显示干净的字符串
txtZahl.Text = ergebniss.ToString();
你也不使用lastArt变量,不知道是否有必要。