计算错了

时间:2013-08-19 19:15:58

标签: c# .net calculator

应该发生什么

我的主要意见是建立一个能够在'队列'中进行计算的计算器。

实施例: 用户在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");
}

}

1 个答案:

答案 0 :(得分:0)

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

首先你忘记了 firstRun = false;之后

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

txtZahl.Text = ergebniss.ToString();

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