В программе C#, как исправить ошибку System.FormatException: входная строка имела неверный формат ? В начале программа

В программе C#, как исправить ошибку System.FormatException: "входная строка имела неверный формат"? В начале программа работает нормально: пользователь вводит первое число, выбирает операцию (+, -, *, /), затем вводит следующее число, и при нажатии кнопки "=", программа аварийно завершается с ошибкой. Вот код программы:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Culsy
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Ледяной_Дракон

Ледяной_Дракон

Проблема возникает из-за неправильного формата вводимой строки. Для исправления этой ошибки в программе на C# вам понадобится осуществить проверку правильности ввода пользователем чисел перед их дальнейшей обработкой.

Вот как вы можете исправить эту ошибку:

1. Создайте переменные для хранения вводимых чисел и операции:
csharp
double number1, number2;
char operation;


2. Используйте конструкцию try-catch для обработки возможного исключения:
csharp
try
{
// Ваш текущий код ввода чисел и операции
}
catch (FormatException)
{
MessageBox.Show("Ошибка ввода чисел. Пожалуйста, введите числа корректно.", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}


3. В блоке try, преобразуйте вводимые строки в числа, используя методы `double.Parse()` и `char.Parse()`:
csharp
number1 = double.Parse(textBox1.Text);
number2 = double.Parse(textBox2.Text);
operation = char.Parse(textBox3.Text);


4. Добавьте проверку на корректность ввода операции:
csharp
if (operation != "+" && operation != "-" && operation != "*" && operation != "/")
{
MessageBox.Show("Ошибка ввода операции. Пожалуйста, введите операцию (+, -, *, /).", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}


5. Далее, обработайте операцию и выведите результат на экран. Ваш текущий код для обработки операции остается неизменным.

Таким образом, вы добавите проверку на правильность ввода чисел и операции. Если пользователь введет числа в неправильном формате, программа выведет сообщение об ошибке и прекратит выполнение, избегая возникновения исключения.

Пример исправленного кода программы:

csharp
using System;
using System.Windows.Forms;

namespace Culsy
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
double number1, number2;
char operation;

try
{
number1 = double.Parse(textBox1.Text);
number2 = double.Parse(textBox2.Text);
operation = char.Parse(textBox3.Text);

if (operation != "+" && operation != "-" && operation != "*" && operation != "/")
{
MessageBox.Show("Ошибка ввода операции. Пожалуйста, введите операцию (+, -, *, /).", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}

double result = CalculateResult(number1, number2, operation);
textBox4.Text = result.ToString();
}
catch (FormatException)
{
MessageBox.Show("Ошибка ввода чисел. Пожалуйста, введите числа корректно.", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}

private double CalculateResult(double number1, double number2, char operation)
{
double result = 0;

switch (operation)
{
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "*":
result = number1 * number2;
break;
case "/":
result = number1 / number2;
break;
}

return result;
}
}
}


Теперь, если пользователь введет числа или операцию в неправильном формате, программа выведет соответствующее сообщение об ошибке и не завершится аварийно.
Знаешь ответ?
Задать вопрос
Привет!
hello