2014-07-01 259 views
0

我試圖將字符串「8.7」​​轉換爲數字,但是我所有的嘗試將它轉換爲87而不是8.7。這是我的嘗試。C#將字符串轉換爲數字

string wind_kph = "8.7" 
if (Convert.ToDouble(wind_kph) > 60.00f) 

真正

if ((int)Convert.ToDouble(wind_kph) > 60.00f) 

真正

if (Convert.ToDecimal(wind_kph) > 60.00f) 

真正

+3

您是否有任何可能干擾解析的本地化設置?我相信小數點在某些文化中是逗號。你的代碼看起來像*應該*工作。 – BradleyDotNET

+0

你的當地文化是什麼?許多歐洲文化把「8.7」​​稱爲「87」,將「8.7」​​稱爲「8.7」​​;我懷疑你可以通過明確指定一種文化(可能是不變的文化)來解決這個問題。 –

+0

第一行應該是「;」終止。它如何編譯w /語法錯誤? Rgds, –

回答

4

可以使用InvariantCulture針對使用dot作爲小數點分隔

解析

您可以找到double.Parse(string)方法的文檔更詳細的信息,相關部分是:

小號參數使用是當前線程初始化的NumberFormatInfo對象格式化信息解讀文化。有關更多信息,請參見CurrentInfo。要使用其他文化的格式信息解析字符串,請調用Double.Parse(String, IFormatProvider)Double.Parse(String, NumberStyles, IFormatProvider)方法。

+0

謝謝,這是問題所在。我的語言選擇只是承認一個,而不是一個。 – Aman

3

這可能是一種文化問題。如果沒有明確指定解析函數使用當前線程文化。要指定特定的文化,您可以將第二個參數發送到double.Parse函數。以你的情況爲「。」你可以使用InvariantCulture

double.Parse("8.7", CultureInfo.InvariantCulture);