Ошибка 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) < >> >
Отслеживать
задан 22 сен 2021 в 15:30
3 2 2 бронзовых знака
Эта ошибка возникает, когда в текстбоксе не целое число, а например пусто или просто текст.
22 сен 2021 в 15:36
После компиляции и ввода во все окна единиц, выдает ошибку на этой строке: int NN = Convert.ToInt32(textBox3.Text); // Скидка n2 — ответ
22 сен 2021 в 15:52
Используйте NumericUpDown вместо TextBox для ввода чисел.
Input string was not in a correct format
Добрый вечер.
Работаю с ардуино и мне нужно получить строку (по сути число в формате string) и перевести его в double. Но вот странно, что он мне показывает, что входная строка имеет некорректный формат: ‘Input string was not in a correct format.’
Кусок кода с ардуино:
1 2 3 4 5 6 7
if (mySensor.accelUpdate() == 0) { aX = mySensor.accelX(); aSqrt = mySensor.accelSqrt(); Serial.println(String(aX)); // delay(200); }
Если оставить println, то в ошибке будет светиться значение «-0.24\r», а если написать print — будет просто «-0.24».
Кусочек кода с C#:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
private void button4_Click(object sender, EventArgs e) { if (!serialPort1.IsOpen) serialPort1.Open(); while (serialPort1.IsOpen) { buffer = " X "; count = 0; chart1.Series[0].Points.Clear(); dataGridView1.Rows.Clear(); serialPort1.Write("1"); for (int i = 0; i 100; i++) { serialPort1.ReadLine(); a = Convert.ToString(serialPort1.ReadLine()); double c = Convert.ToDouble(a); //Double.Parse(a); richTextBox5.AppendText(sent + buffer + "--> X - Axis" + Environment.NewLine); richTextBox5.ScrollToCaret(); chart1.Series[0].Points.AddXY(i + 1, a); label1.Text = "Count: " + Convert.ToString(i); dataGridView1.Rows.Add(); dataGridView1.Rows[i].Cells[0].Value = i + 1; dataGridView1.Rows[i].Cells[1].Value = a; } serialPort1.Close(); } }
Я открываю дебаггер, там у меня значение «-0.24». Почему он не хочет конвертировать его в double? Помогите
Input string was not in a correct format c что делать
15,767,654 members
Sign in
Sign in with
Advertise
Privacy
Cookies
Terms of Use
Last Updated 13 Feb 2022
Copyright © CodeProject, 1999-2023
All Rights Reserved.
CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900
Как решить ошибку FormatException: Input string was not in a correct format. unity?
У вас в inf_ot и ind_do не числа.
Приведите пример текста, который хотите спарсить.
PS: Но вообще код какой-то дикий. Я советую вам отложить юнити на потом и пока учить чистый C#.
Замечания по коду
public void Random() < str += str2 = otv; // Не будет работать, либо будет работать не так, как вам нужно. >
R_Main — какое-то дикое сокращение, которое ничего не говорит о смысле скрипта. + В C# принято использовать PascalCase — никаких нижних чёрточек
inf_ot, inf_do — То же самое, но ещё и транслит «от» «до»
otvet — то же самое
int str, str1 — лишнее сокращение + обман читателя. str большинство людей расшифровывают, как string, но тут числа
otv — сокращение + транслит.
Ну и парсинг чисел в апдейте — это жирноватая операция.
PPS: вероятно, вам нужно это:
Валидация — сюда можно ввести код, который не позволит пользователю вводит не-числа:
https://docs.unity3d.com/ru/530/ScriptReference/UI.
Не забывайте про документацию — в ней хорошо описаны самые нужные моменты.