将字符串计算转换为小数答案

时间:2012-09-26 12:19:38

标签: c# calculator

我正在尝试编写一个计算器,其中按钮将字符发送到文本框。当用户按下“等于”按钮时,必须计算整个字符串,并且答案必须显示为小数。显然以下不起作用:

    private void btn_enter_Click(object sender, EventArgs e)
    {
        decimal answer;
        answer = Convert.ToDecimal(textBox1.Text);

        textBox1.Text += "=" + answer;
    }

制作此类作品的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

虽然你的问题不明确。但是如果你想在文本框中显示,你应该将它转换为字符串。

private void btn_enter_Click(object sender, EventArgs e)
{
    decimal answer;
    answer = Convert.ToDecimal(textBox1.Text);

    textBox1.Text += "=" + answer.toString();
}

答案 1 :(得分:-1)

你可以沿着evaluating C# on the fly的路线前进,但是对于你想要做的事情,这有点矫枉过正。

我建议使用计算引擎,例如NCalc(您可以get on NuGet)。有了它,你可以轻松地做一些事情(取自NCalc主页):

Expression e = new Expression("2 + 3 * 5");
Debug.Assert(17 == e.Evaluate());

您可以使用Expression中的文本替换TextBox类的构造函数,然后将调用结果通过管道传递到Evaluate,以便将其输出到: / p>

Expression e = new Expression(textBox1.Text);
MessageBox.Show(e.Evaluate().ToString());