我正在尝试编写一个计算器,其中按钮将字符发送到文本框。当用户按下“等于”按钮时,必须计算整个字符串,并且答案必须显示为小数。显然以下不起作用:
private void btn_enter_Click(object sender, EventArgs e)
{
decimal answer;
answer = Convert.ToDecimal(textBox1.Text);
textBox1.Text += "=" + answer;
}
制作此类作品的最佳方法是什么?
答案 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());