Ho lavorato a una calcolatrice usando C# e ho trovato un problema che non sono riuscito a superare.Perché la mia prevenzione "Divide by Zero" non funziona?
Attualmente quando un utente immette un numero diviso per zero, la risposta predefinita è 0.00, quando invece dovrebbe essere non valida.
Non ho idea del perché e dopo averlo armeggiato per un po 'non sono stato in grado di capirlo. Ecco il codice rilevante:
private void button1_Click(object sender, EventArgs e)
{
double number1, number2, ans; // Identify variables as double to account for decimals.
number1 = Convert.ToDouble(num1.Text); // Convert the contents of the textBox into a double.
number2 = Convert.ToDouble(num2.Text); //
ans = 0.0;
string symbol = modifier1.Text;
if (symbol == "/" && number2 == 0) // This part seems to be broken.
answer.Text = "Invalid input.";
else
if (symbol == "+")
ans = number1 + number2;
else if (symbol == "-")
ans = number1 - number2;
else if (symbol == "/")
ans = number1/number2;
else if (symbol == "*")
ans = number1 * number2;
else
ans = 0;
answer.Text = ans.ToString("n"); // Change label value to a number.
}
Qualcuno ha qualche idea su come posso risolvere questo problema? Sembra piuttosto semplice ma mi manca qualcosa.
È mancante 'parentesi return' o ricci. Si prega di utilizzare il debugger per confermare. Assicurati inoltre di essere chiaro sulle regole del linguaggio che stai utilizzando - C# * non * usa spazi bianchi significativi a differenza di altre lingue. –