为什么这个计算器给我 'Input string was not in correct format' 错误?
Why is this calculator giving me 'Input string was not in correct format' Error?
我正在使用 System.Windows.Forms 来计算这个计算器,每次我尝试进行平方根、余弦、正弦或正切运算并按下等于按钮时,它会停止并告诉我 'System.FormatException : Input string was not in a correct format' 并且我不知道为什么。
这是我的 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 事件和 DivisionButton_event(所以你可以看到 DivisionButton 确实有效):
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
是空的。请注意,您正在执行行 num2 = double.Parse(textBoxResult.Text);
如果最近清除了 textBoxResult,那么您会在此处遇到形式为 System.FormatException : Input string was not in a correct format
的问题(空的 string/null 不会被 double.Parse 作为 0.00)
我正在使用 System.Windows.Forms 来计算这个计算器,每次我尝试进行平方根、余弦、正弦或正切运算并按下等于按钮时,它会停止并告诉我 'System.FormatException : Input string was not in a correct format' 并且我不知道为什么。
这是我的 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 事件和 DivisionButton_event(所以你可以看到 DivisionButton 确实有效):
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
是空的。请注意,您正在执行行 num2 = double.Parse(textBoxResult.Text);
如果最近清除了 textBoxResult,那么您会在此处遇到形式为 System.FormatException : Input string was not in a correct format
的问题(空的 string/null 不会被 double.Parse 作为 0.00)