为什么double.tryparse在从console.ReadLine();

时间:2018-03-02 06:39:51

标签: c#

新手在这里,任何帮助理解表示赞赏。第一次使用tryparse。

在这种情况下:

do
{
    Console.Write("What is the temperature (in degrees Fahrenheit): ");
    outcome = double.TryParse(Console.ReadLine(), out tempf);
    if (outcome == false)
    {
        Console.WriteLine("Invalid input");
    }

} while (outcome == false);

'堆栈的用户输入'会返回boolean' false'值,而输入如' 100'将返回' true' 我认为如果用户输入为double.TryParse类型,则true只返回string,因为这将是一次成功的解析。

2 个答案:

答案 0 :(得分:1)

来自msdn:

  

Double.TryParse将数字的字符串表示形式转换为双精度   浮点数等价。返回值表示是否   转换成功或失败

只要转换成为可能,它就会返回true。例如,用户输入是" 123X"将失败尝试解析。

答案 1 :(得分:0)

您正在使用double.TryParse,这意味着您正在尝试将输入的值解析为double值。如果可以这样做,TryParse返回true,否则返回false。

根据您的输入,对于' stack'的用户输入,TryParse尝试将其解析为双值,该值不是有效转换且其失败并因此返回false。对于诸如' 100'之类的输入,TryParse可以做到这一点。

以下是MSDN link