计算器可以进行n次计算

时间:2018-09-10 08:49:16

标签: c#

在下面的代码中,计算器仅计算两个值,我需要做一个可以进行n次计算的计算器(例如除法乘法加法和减法)。

private void result()
{
    String op;
    int iOp = 0;
    if (tb.Text.Contains("+"))
    {
        iOp = tb.Text.IndexOf("+");
    }
    else if (tb.Text.Contains("-"))
    {
        iOp = tb.Text.IndexOf("-");
    }
    else if (tb.Text.Contains("*"))
    {
        iOp = tb.Text.IndexOf("*");
    }
    else if (tb.Text.Contains("/"))
    {
        iOp = tb.Text.IndexOf("/");
    }
    else
    {
        //error    
    }

    op = tb.Text.Substring(iOp, 1);
    double op1 = Convert.ToDouble(tb.Text.Substring(0, iOp));
    double op2 = Convert.ToDouble(tb.Text.Substring(iOp + 1, tb.Text.Length - iOp - 1));

    if (op == "+")
    {
        tb.Text += "=" + (op1 + op2);
    }
    else if (op == "-")
    {
        tb.Text += "=" + (op1 - op2);
    }
    else if (op == "*")
    {
        tb.Text += "=" + (op1 * op2);
    }
    else
    {
        tb.Text += "=" + (op1 / op2);
    }
}

1 个答案:

答案 0 :(得分:0)

这会为您做事情:

DataTable dt = new DataTable();
tb.Text += "=" + dt.Compute(tb.Text, "").ToString();

与任何表达式解析器一样好。