Ошибка System.FormatException: "Input string was not in a correct format."
не знаю, как исправить ошибку, столкнулся с ней при написании кода для решения задачи Сама задача,прошу помощи с исправлением ошибки, заранее спасибо)
P.s Все еще сырое, только начал что-то писать, а уже засыпался ошибками)
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 _23
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
int C = Convert.ToInt32(textBox1.Text); // Стоимость C1
int CC = Convert.ToInt32(textBox2.Text); // Стоимость C2
int NN = Convert.ToInt32(textBox3.Text); // Скидка n2 - ответ
int N = Convert.ToInt32(textBox4.Text); // Скидка n1
if (CC>C)
{
NN = C; // (C * N) + ((CC - C) * NN);
}
else
{
Console.WriteLine("Ошибка ввода стоимости");
}
}
private void label3_Click(object sender, EventArgs e)
{
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
}
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Эта ошибка возникает, когда в текстбоксе не целое число, а например пусто или просто текст. Чтобы она вообще не возникала, все 4 текстбокса должны содержать числа на момент нажатия кнопки.
Самый простой способ решить проблему падения приложения, когда в одном из текстбоксов не число - это обработать возникшее исключение.
private void button1_Click(object sender, EventArgs e)
{
try
{
int C = Convert.ToInt32(textBox1.Text); // Стоимость C1
int CC = Convert.ToInt32(textBox2.Text); // Стоимость C2
int NN = Convert.ToInt32(textBox3.Text); // Скидка n2 - ответ
int N = Convert.ToInt32(textBox4.Text); // Скидка n1
if (CC>C)
{
NN = C; // (C * N) + ((CC - C) * NN);
}
else
{
Console.WriteLine("Ошибка ввода стоимости");
}
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка: {ex.Message}");
}
}
Еще старайтесь давать переменным осмысленные имена. Код из двухбуквенных шифров тяжело читать.