Ich mache diesen Rechner mit System.Windows.Forms und jedes Mal, wenn ich versuche, eine Quadratwurzel, Cos, Sin oder Tan-Operation und drücken Sie die Equals-Taste stoppt es und sagt mir 'System.FormatException: Eingabe String war nicht in ein richtiges Format 'und ich weiß nicht warum.Warum gibt dieser Rechner mir 'Input String war nicht im richtigen Format' Fehler?
Das ist mein buttonEquals_Click Veranstaltung:
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;
}
}
und das ist mein SqrtButton_Click Ereignis und DivisionButton_event (so können Sie mit DivisionButton sehen, dass es funktioniert):
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();
}
ich jede schätzen würde Hilfe.
EDIT: Die Ausnahme ist trown an: num2 = double.Parse(textBoxResult.Text);
Was bedeutet das Debugger sagen Ihnen, wenn Sie einen Breakpoint in 'SqrtButtonClick' setzen? Ist der Wert angemessen, um an "double.Parse" zu übergeben? Wie sieht es mit dem 'case' für' "sqrt" 'aus, wenn Sie' resultValue' untersuchen? Ist der Wert, der zur Übergabe an die Funktion 'sqrt' passen würde? –
Jetzt haben Sie Ihre Antwort. * Ungültige Eingabezeichenfolge * –
Es kommt nicht zur nächsten Zeile. Es stoppt bei 'num2 = double.Parse (textBoxResult.Text);' aber wenn ich den Breakpoint in den 'case' für Division platziere, wird der Fall eingegeben. –