每当我插入一个double值时,c#Console崩溃

时间:2017-08-26 07:57:03

标签: c#

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

当代码运行并且用户插入像3.14这样的double值时,控制台崩溃。为什么是这样? 另外请记住,我对编程很新,还在学习基础知识。

2 个答案:

答案 0 :(得分:0)

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

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

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

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);

答案 1 :(得分:-3)

Console.WriteLine(myDouble.ToString());

这应该可以解决问题。