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

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

csharp
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();
}
Tigressa
40
Ошибка "System.FormatException: входная строка имела неверный формат" возникает потому, что введенные пользователем числа не могут быть преобразованы в нужный формат. В данном случае, есть проблема с преобразованием строки в число.

Ваша задача состоит в исправлении этой ошибки. Для этого можно добавить проверку на правильность введенных данных перед их преобразованием. Вот как можно это сделать:

csharp
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();
}

private void button1_Click(object sender, EventArgs e)
{
try
{
// Проверяем, что текстовые поля содержат корректные числа
if (double.TryParse(textBox1.Text, out double num1) && double.TryParse(textBox3.Text, out double num2))
{
// Получаем выбранную операцию
string operation = comboBox1.SelectedItem.ToString();

// Выполняем операцию в зависимости от выбранного значения
switch (operation)
{
case "+":
textBox4.Text = (num1 + num2).ToString();
break;
case "-":
textBox4.Text = (num1 - num2).ToString();
break;
case "*":
textBox4.Text = (num1 * num2).ToString();
break;
case "/":
textBox4.Text = (num1 / num2).ToString();
break;
}
}
else
{
// Если введенные значения некорректны, выводим сообщение об ошибке
MessageBox.Show("Пожалуйста, введите корректные числа!");
}
}
catch (Exception ex)
{
// В случае возникновения любой другой ошибки выводим соответствующее сообщение
MessageBox.Show("Возникла ошибка: " + ex.Message);
}
}
}
}


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

Теперь приложение должно работать без ошибок при вводе чисел и выполнении операций.