-1

应该发生什么

我的任务是编写一个能够在“队列”中进行计算的计算器。

示例:用户输入第一个数字txtZahl,然后单击其中一个按钮。所需的计算应保存在列表中numberstxtZahl应清除。用户现在可以输入一个新数字并按下按钮等。当用户单击btnEquforeach 时,应该从列表中获取每个计算并进行计算。如果这样做了,结果应该显示在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");
}

}

4

1 回答 1

0
if (firstRun)
        {
            ergebniss = Convert.ToDouble(txtZahl.Text);
            firstRun = false;
            return;
        }

首先你忘了 firstRun = false; 在那之后

然后我建议你只显示干净的字符串

txtZahl.Text = ergebniss.ToString();

您也没有使用 lastArt 变量,不知道这是否有必要。

于 2013-08-19T20:45:06.873 回答