0

我写了一个非常简单的代码。我试图让它为我做两件事

  1. 我希望它不断地显示用户输入和输出是什么。现在它没有。我认为这是我的附加文本的问题
  2. 我应该使用 try and catch 进行错误处理吗?那就是如果用户输入多于一位小数,我的代码就会崩溃。我想知道如何使它恢复到小数点并继续。

这是我的代码片段。

还要注意的是,只有在我的添加方法中,我才开始追加文本,因为它不起作用而且我一直卡住我停下来来到这里......

private void button10_Click(object sender, EventArgs e) {
    textBox1.AppendText(".");
}

private void button3_Click(object sender, EventArgs e) {
    c = "+";
    num1 = double.Parse(textBox1.Text);
    textBox1.AppendText("+");
}

private void button12_Click(object sender, EventArgs e) {
    c = "-";
    num1 = double.Parse(textBox1.Text);
    textBox1.Text = "";
}

private void button13_Click(object sender, EventArgs e) {
    c = "*";
    num1 = double.Parse(textBox1.Text);
    textBox1.Text = "";
}

private void button14_Click(object sender, EventArgs e) {
    c = "/";
    num1 = double.Parse(textBox1.Text);
    textBox1.Text = "";
}

private void button4_Click(object sender, EventArgs e) {
    num2 = double.Parse(textBox1.Text);
    double result;
    if (c == "+") {
        result = num1 + num2;
        textBox1.Text = result.ToString();
    }
4

1 回答 1

0

当您附加“+”时,num2 等于 value1+“+”+value2 或其他内容,因此请尝试使用此代码

    private void button4_Click(object sender, EventArgs e) {
     double result;
     if (c == "+") {

        num2 = double.Parse(textBox1.Text.Split('+')[1]);//bad idea but will work
        result = num1 + num2;
        textBox1.Text = result.ToString();
    }
 }

也试试

    private void button4_Click(object sender, EventArgs e) {
     double result;
     if (c == "+") {

     num2 = double.Parse(textBox1.Text.SubString(textBox1.Text.LastIndexOf('+')+1));
        result = num1 + num2;
        textBox1.Text = result.ToString();
    }
 }

PS:try catch需要!

于 2013-08-31T00:42:14.957 回答