0

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

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

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

制作这样的东西的最佳方法是什么?

4

2 回答 2

0

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

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

    textBox1.Text += "=" + answer.toString();
}
于 2012-09-26T12:43:55.230 回答
-1

您可以按照动态评估 C# 的方式进行,但是对于您要尝试做的事情,这有点矫枉过正。

我推荐一个计算引擎,比如NCalc(你可以在 NuGet上获得)。有了它,您可以轻松地执行以下操作(取自 NCalc 主页):

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

您可以将类的构造函数替换为Expression您的文本TextBox,然后将调用结果通过管道传输Evaluate到您想要将其输出到的任何位置:

Expression e = new Expression(textBox1.Text);
MessageBox.Show(e.Evaluate().ToString());
于 2012-09-26T12:48:17.327 回答