2011-07-26 245 views
0
Console.WriteLine("Enter a double number"); 
string numberInput = Console.ReadLine(); 


double number = Double.Parse(numberInput) 

我的问题是最后一行代码在做什么?它是否与ToDouble做同样的事情?理解C语言解析#

回答

6

非常简短的回答是:

将字符串值转换成一个双。例如

“2.3”(字符串)将变成2.3(双)。

您对如何做到这一点有很多选择:

Double.TryParse()

Convert.ToDouble()

Double.TryParse()是方便的,如果你不知道100%的输入字符串是要是一个数字值。

+1

特别是,在这种情况下,输入可能是任何东西,TryParse是一种更清晰的方式来确定条目是否会转换。否则,你将不得不在Convert/ToDouble内try/catch。 TryParse为您处理。 –

+0

谢谢你们。我对Convert.ToDouble和Double.Parse感到困惑。我猜他们做了类似的工作,但不确定。感谢您通知TryParse() – Maya

4

这是转换一个stringdouble,则Console.ReadLine()方法读取字符串数据并将其存储在名为numberInput,从该字符串转换为doublestring变量,Double.Parse叫我们传递给它的numberInput字符串,它会转换它增加一倍。

3

“将指定样式中的数字的字符串表示形式转换为其双精度浮点数等效形式。”

参见MSDN

+0

Doh,您击败了我! –

3

它将String输入并解释为数字输入 - 在这种情况下为DoubleStringDouble是完全不同的类型。例如,数学运算可以在Double上执行。

3

它调用了Double.Parse方法。根据MSDN页面

将数字的字符串表示形式转换为其等价的双精度浮点数。

按照@DoctorMick'sanswer:它与Convert.ToDouble方法做同样的事情。

在这种情况下,它被使用,因为代码从用户那里得到一个string,可以被认为是一个字母序列。我们希望将其纳入我们想要使用的正确类型,在本例中为Double。 Double有这个解析方法。

2

读入变量numberInput的数据是一个字符串。最后一行将其解析为System.Double类型,以便更好地输入其他操作。

无法保证numberInput包含有效的数值,在这种情况下,Parse方法将抛出一个您可以捕获的异常。

2

已经有7个不同的答案,但似乎每个人似乎都忽略了与ToDouble一样的问题。简短的回答是,它在做同样的事情,实际上ToDouble在内部调用double.Parse。