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