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

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(".",",");

И небольшой совет - не городите лишние переменные, они только усложняют читабельность кода.

→ Ссылка