double myDouble = double.Parse(Console.ReadLine());
Console.WriteLine(myDouble);
//user inputs 3.14 for example
当代码运行,并且用户插入一个双值像3.14控制台崩溃。为什么是这样?另外请记住,我对编程还很陌生,仍然在学习基础知识。在c#控制台崩溃,每当我插入一个双值
double myDouble = double.Parse(Console.ReadLine());
Console.WriteLine(myDouble);
//user inputs 3.14 for example
当代码运行,并且用户插入一个双值像3.14控制台崩溃。为什么是这样?另外请记住,我对编程还很陌生,仍然在学习基础知识。在c#控制台崩溃,每当我插入一个双值
1.您的文化可能确定您应该使用','
分隔符而不是'.'
。有2个小数点分隔符,因为在一个情况下,你可以象132,532.34
这意味着:132532.34
2.如果要检查用户是否处于良好的格式写的,用double.TryParse
相反,它会返回0
如果解析失败。
3,如果您想分析双带任何分隔使用类似:
Double myDouble;
Double defaultValue = 0;
var value = Console.ReadLine();
if (!double.TryParse(value, System.Globalization.NumberStyles.Any, CultureInfo.CurrentCulture, out myDouble) &&
// Then try in US english
!double.TryParse(value, System.Globalization.NumberStyles.Any, CultureInfo.GetCultureInfo("en-US"), out myDouble) &&
// Then in neutral language
!double.TryParse(value, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out myDouble))
{
myDouble = defaultValue;
}
Console.WriteLine(myDouble);
['Double.TryParse'](https://msdn.microsoft.com/en-us/library/3s27fasw(v = vs.110).aspx)返回一个'bool'(如果它返回一个整数, t能够像你在你的代码中一样使用它) – UnholySheep
我的意思是,它将返回0出双(double.TryParse(文本,出
谢谢你的工作! –
Console.WriteLine(myDouble.ToString());
这应该做的伎俩。
首先'ToString()'不是'toString()'。其次,这不是问题。 – FCin
['Console.WriteLine'](https://msdn.microsoft.com/en-us/library/219hw6yx(v = vs.110).aspx)对'double'参数有重载,所以无论你怎么想使用它会导致崩溃(或抛出异常)? – UnholySheep
与尝试双myDouble = double.Parse(到Console.ReadLine()); –
@HaDoan我忘记把控制台放在这个例子中对不起xD –
如何输入Console.Read.Line()。即使智能感知也没有提供。 double myDouble = double.Parse(Console.ReadLine()); Console.WriteLine(myDouble); – Amit