Преобразование строки с использованием метода Double.TryParse в C # - PullRequest
1 голос
/ 04 апреля 2019

Сейчас я преобразовал все 3 строки в целое число, но у меня возникли проблемы с преобразованием каждой строки с помощью метода Double.TryParse.Я хочу использовать этот метод вместо int.

Я пытался использовать этот тип кода if (Double.TryParse (value, out out)), но я не уверен, точно ли это правильно.

//Ask the user for height
Console.Write("Please enter the first part of your height in feet:");
string _height = Console.ReadLine();
int _heightVal = Int32.Parse(_height);

//Ask the user for inches
Console.Write("Please enter the second part of your height in inches:");
string _inches = Console.ReadLine();
int _inchesVal = Int32.Parse(_inches);

//Ask the user for pounds
Console.Write("Please enter your weight in pounds:");
string _pounds = Console.ReadLine();
int _poundsVal = Int32.Parse(_pounds);

Ответы [ 2 ]

3 голосов
/ 04 апреля 2019
double heightVal = 0;
double.TryParse(_height, out heightVal); 

heightVal будет иметь значение Parse от _height, если анализ выполнен успешно, в противном случае он будет иметь свое предыдущее значение (здесь 0)

TryParse() возвращает логическое значение, указывающее, чтоРазбор был успешным, что вы можете использовать его следующим образом:

bool success = double.TryParse(_height, out heightVal); 

или

if(double.TryParse(_height, out heightVal))
{
     //Parse was successful and heightVal contains the new value
     // and you can use it in here
}

Fail Пример:

double defaultValue = 0;
string str = "abc"
bool success = double.TryParse(str, defaultValue );

Вывод:

defaultValue = 0

success = false

Success Пример:

double defaultValue = 0;
string str = "123"
bool success = double.TryParse(str, defaultValue );

Вывод:

defaultValue = 123

success = true

0 голосов
/ 04 апреля 2019

я думаю, что вы просто пытаетесь заставить использовать введите правильное значение, вы можете использовать цикл Wile, как это

 double userHeight = 0.0;
        while (true)
        { 
            //Ask the user for height
            Console.Write("Please enter the first part of your height in feet:");
            string _height = Console.ReadLine();
            if (Double.TryParse(_height, out double height))
            {
                userHeight = height;
                break;
            }

        }

, а затем применить ко всем вашим вопросам

...