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 に答える