我試着解決這個問題好幾個小時,絕對不明白編譯器在這裏做什麼。我有基本上看起來像這樣的字符串:從字符串中讀取一個double值
"KL10124 Traitor #2 - +XX-+0.25 - More Stuff"
並且需要以編程方式讀取double'0.25'。調用以上人民政府字符串,下面兩行不起作用:
string[] h = s.Split('-');
string h2 = h[2].Substring(1,h[2].Length - 2);
double d = Convert.ToDouble(h2);
輸出,如果我顯示d是「25」。我認爲這可能取決於'。' 「如果我插入
double d = Convert.ToDouble(h2.Replace('.',','));
它不會改變一個東西,輸出仍然是」25「。
但最後,如果我做的蠻力方法如下我得到的逐字輸出「0,25」屏幕
double d;
string[] h = s.Split('-');
string h2 = h[2].Substring(1,h[2].Length - 2);
if (h2.Contains("."))
{
string[] h3 = h2.Split('.');
d = Convert.ToDouble(h3[0]) + Convert.ToDouble(h3[1])/100;
}
else
{
d = Convert.ToDouble(h2);
}
return d;
爲什麼不完全相同的前兩個版本無法正常工作?代碼的最後一部分不能是這樣做的正確方法。
在第一個代碼中,什麼是'h2'? – CodingGorilla
當我運行它時,你的第一個代碼片段返回「0.25」。 – LarsTech
我的文化是en-GB,第一位代碼給我0.25 –