Входная строка имеет неверный формат
float num = Convert.ToSingle(ent_num.Text);
Пытаюсь конвертировать вводимое в текстбокс(string) значение во float, на что выдаёт ошибку, мол "Входная строка имела неверный формат". Раньше такой проблемы не наблюдал, может быть я в очердной раз туплю. На всякий случай вот весь код:
async private void ent_num_KeyPress(object sender, KeyPressEventArgs e)
{
if (ent_num.Text != null)
{
if (radioButton1.Checked) //Преобразование в 4ую СС
{
//await Task.Delay(1500);
float num = Convert.ToSingle(ent_num.Text); //Введённое число
if (num != 1)
{
float result; //Результат счёта для вывода
float calc = num; //
while (calc <= 4)
{
result = calc % 4;
Test.Text = Convert.ToString(result);
}
}
//output.Text = Convert.ToString(num, 4);
}
}
}
Ответы (1 шт):
Автор решения: Сергей Татевосян
→ Ссылка
Так у вас бесконечный цикл. Попробуйте следующий код:
async private void ent_num_KeyPress(object sender, KeyPressEventArgs e)
{
if (!string.IsNullOrEmpty(ent_num.Text) && radioButton1.Checked)//Преобразование в 4ую СС
{
float num = Convert.ToSingle(ent_num.Text.Replace(".",",")); //Введённое число
if (num != 1)
{
while (num > 4)
{
num = num % 4;
Test.Text = num.ToString();
}
}
}
}
Ошибка скорей всего была тут: .Replace(".",",");
И небольшой совет - не городите лишние переменные, они только усложняют читабельность кода.