为什么这个计算器给我'Input string was not in correct format'错误?



我正在使用system.windows.forms进行此计算器,每次我尝试执行平方根,cos,sin或tan操作,然后按Equals按钮,它停止并告诉我'system.formatexception:输入字符串不是正确的格式',我不知道为什么。

这是我的buttonequals_click事件:

private void buttonEquals_Click(object sender, EventArgs e)
{
    double num2;
    double answer;
    num2 = double.Parse(textBoxResult.Text);
    switch (theOperator)
    {
        case "+":
            answer = resultValue + num2;
            textBoxResult.Text = answer.ToString();
            resultValue = 0;
            break;
        case "-":
            answer = resultValue - num2;
            textBoxResult.Text = answer.ToString();
            resultValue = 0;
            break;
        case "×":
            answer = resultValue * num2;
            textBoxResult.Text = answer.ToString();
            resultValue = 0;
            break;
        case "÷":
            answer = resultValue / num2;
            textBoxResult.Text = answer.ToString();
            resultValue = 0;
            break;
        case "sqrt":
            answer = Math.Sqrt(resultValue);
            textBoxResult.Text = answer.ToString();
            resultValue = 0;
            break;
        case "exp":
            answer = Math.Pow(resultValue, num2);
            textBoxResult.Text = answer.ToString();
            resultValue = 0;
            break;
        case "sin":
            answer = Math.Sin(resultValue);
            textBoxResult.Text = answer.ToString();
            resultValue = 0;
            break;
        case "cos":
            answer = Math.Cos(resultValue);
            textBoxResult.Text = answer.ToString();
            resultValue = 0;
            break;
        case "tan":
            answer = Math.Tan(resultValue); 
            textBoxResult.Text = answer.ToString();
            resultValue = 0;
            break;
        default:
            answer = 0;
            break;
    }
}

这是我的sqrtbutton_click事件和dission button_event(因此,您可以看到它确实可以使用):

private void SqrtButton_Click(object sender, EventArgs e)
{
    resultValue = resultValue + double.Parse(textBoxResult.Text);
    theOperator = "sqrt";
    textBoxResult.Clear();
}
private void DivisionButton_Click(object sender, EventArgs e)
{
    resultValue = resultValue + double.Parse(textBoxResult.Text);
    theOperator = "÷";
    textBoxResult.Clear();
}

我感谢任何帮助。

编辑:例外是在:num2 = double.Parse(textBoxResult.Text);

会猜测,当您尝试测试这些人时,textBoxResult是空的。请注意,如果最近清除了TextBoxResult,您将执行该行num2 = double.Parse(textBoxResult.Text);,那么您将在此处出现 System.FormatException : Input string was not in a correct format的问题(一个空字符串/null不会被Double.Parse作为0.00解析)

最新更新