akhandafm17 Ответов: 2

Это должно быть числовое значение


Привет,
Я хочу, чтобы, если я напишу строку, она выдаст ошибку. Как я могу написать, что этот код принимает только числовое значение?

//This must be a numeric value

           Console.Write("Geef je startsalaris in: ");
           salaris = Convert.ToDouble(Console.ReadLine());
           while(//here should i say that if the user gives a string it will give this error)
           {
               Console.WriteLine("dit is geen numeriek waarde");
               Console.Write("Geef je startsalaris in: ");
               salaris = Convert.ToDouble(Console.ReadLine());
           }


Что я уже пробовал:

я перепробовал много вещей, но без какого-либо решения.

2 Ответов

Рейтинг:
2

pparya27

Попробовать это -

double x = 0.0;
bool flag = true;

Console.WriteLine("Enter value : ");

while (flag)
{
    try
    {
        x = Convert.ToDouble(Console.ReadLine());
        flag = false;
    }
    catch (Exception ex)
    {
        Console.WriteLine("Enter correct value :");
        flag = true;
    }
}

Console.WriteLine("ok :" + x);


Рейтинг:
18

Midi_Mick

Функция TryParse специально разработана для этого типа операций.

Console.Write("Geef je startsalaris in: ");
while(!double.TryParse(Console.ReadLine(), out salaris))
{
    Console.WriteLine("dit is geen numeriek waarde");
    Console.Write("Geef je startsalaris in: ");
}