double myDouble = double.Parse(Console.ReadLine());
Console.WriteLine(myDouble);
//user inputs 3.14 for example
当代码运行并且用户插入像3.14这样的double值时,控制台崩溃。为什么是这样? 另外请记住,我对编程很新,还在学习基础知识。
答案 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());
这应该可以解决问题。