Входная строка имела неверный формат | Windows Forms

Выскакивает ошибка System.FormatException: "Входная строка имела неверный формат" при вводе целых чисел и нажатии на кнопку в программе на Windows Forms в Visual Studio 17.

Ошибка возникает в этом блоке, когда нажимаю на button1 в уже скомпилированной программе.

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Single a, b, c;
Single A = Single::TryParse(textBox1->Text,
System::Globalization::NumberStyles::Number,
System::Globalization::NumberFormatInfo::CurrentInfo, a);
Single B = Single::TryParse(textBox1->Text,
System::Globalization::NumberStyles::Number,
System::Globalization::NumberFormatInfo::CurrentInfo, b);
Single C = Single::TryParse(textBox1->Text,
System::Globalization::NumberStyles::Number,
System::Globalization::NumberFormatInfo::CurrentInfo, c);

float y, z, f, m, k;
float D = 0;
if (a == 0) {
MessageBox::Show("При a = 0 - нет решений!");
}
D = b * b - 4 * a * c;
if (D >= 0) {
y = (-b + Math::Sqrt(D) / 2 * a);
z = (-b - Math::Sqrt(D) / 2 * a);
label6->Text = String::Format("Корни x1 = {0, F3} и x2 = {1, F3}", y, z);
label7->Text = String::Format("При D = {0. F3}", D);
}
else {
f = -1 * D;
k = (Math::Sqrt(f) / 2 * a);
m = (-b / 2 * a);
label6->Text = String::Format("Корни x1 = {0, F1} + {1, F1} * i и x2 = {0, F1} - {1, F1} * i", m, k);
label7->Text = String::Format("При D = {0, F3}", D);
}

}
Входная строка имела неверный формат Windows Forms

В информации об ошибке вы можете увидеть номер строки с ошибкой и стек вызова. Из стека вызова можно понять, в какой функции ошибка (если в строке вызывается несколько функций). Мне эта информация недоступна.

String::Format("Корни x1 = {0, F3} и x2 = {1, F3}", y, z);
Тут неправильноя строка описания формата. Описание формата указывается после двоеточия. Или можно его не указывать, тогда двоеточие ненужно:
String::Format("Корни x1 = {0} и x2 = {1}", y, z);
https://docs.microsoft.com/...ormat-item

Добавить комментарий