在c#中,每当我插入双精度值时,控制台就会崩溃

在c#中,每当我插入双精度值时,控制台就会崩溃,c#,C#,当代码运行时,用户插入双精度值(如3.14)时,控制台崩溃。为什么会这样? 还请记住,我对编程非常陌生,仍然在学习基础知识 double myDouble = double.Parse(Console.ReadLine()); Console.WriteLine(myDouble); //user inputs 3.14 for example 这应该可以解决问题。1.您的文化可能决定您应该使用,“分隔符,而不是”。。有两个小数点分隔符,因为在一种情况下,您可以键入132532.34,这意味着

当代码运行时,用户插入双精度值(如3.14)时,控制台崩溃。为什么会这样? 还请记住,我对编程非常陌生,仍然在学习基础知识

double myDouble = double.Parse(Console.ReadLine());
Console.WriteLine(myDouble);
//user inputs 3.14 for example

这应该可以解决问题。

1.您的文化可能决定您应该使用
,“
分隔符,而不是
”。
。有两个小数点分隔符,因为在一种情况下,您可以键入
132532.34
,这意味着:
132532.34

2.如果要检查用户是否以良好的格式编写,请使用
double.TryParse
,如果解析失败,它将返回
0

3.如果要使用任何分隔符分析double,请使用以下内容:

Console.WriteLine(myDouble.ToString());

尝试使用double myDouble=double.Parse(Console.ReadLine())@HaDoan我忘了在示例中放置console抱歉,您如何键入console.Read.Line()。即使是intellisense也没有提供这一点。double myDouble=double.Parse(Console.ReadLine());控制台写入线(myDouble);您计算机的语言是什么(本地化)?名为“Tomás”的人应键入
3,14
。考虑使用CultualIfFo.UnnFieldCults和Buff.TyPARSESE()。首先,代码> toStrug()/<代码> > <代码> toStrug()/<代码>。第二,这不是问题所在。对于
参数有一个重载,所以您认为使用它会导致崩溃(或引发异常)的原因是什么?返回一个
bool
(如果它返回一个整数,您将无法像在代码中那样使用它),我的意思是,它将返回0 in out double(double.TryParse(text,out)
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);