我試圖將字符串「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)
真正
我試圖將字符串「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)
真正
可以使用InvariantCulture
針對使用dot
作爲小數點分隔
您可以找到double.Parse(string)
方法的文檔更詳細的信息,相關部分是:
的小號參數使用是當前線程初始化的
NumberFormatInfo
對象格式化信息解讀文化。有關更多信息,請參見CurrentInfo
。要使用其他文化的格式信息解析字符串,請調用Double.Parse(String, IFormatProvider)
或Double.Parse(String, NumberStyles, IFormatProvider)
方法。
謝謝,這是問題所在。我的語言選擇只是承認一個,而不是一個。 – Aman
這可能是一種文化問題。如果沒有明確指定解析函數使用當前線程文化。要指定特定的文化,您可以將第二個參數發送到double.Parse
函數。以你的情況爲「。」你可以使用InvariantCulture
。
double.Parse("8.7", CultureInfo.InvariantCulture);
您是否有任何可能干擾解析的本地化設置?我相信小數點在某些文化中是逗號。你的代碼看起來像*應該*工作。 – BradleyDotNET
你的當地文化是什麼?許多歐洲文化把「8.7」稱爲「87」,將「8.7」稱爲「8.7」;我懷疑你可以通過明確指定一種文化(可能是不變的文化)來解決這個問題。 –
第一行應該是「;」終止。它如何編譯w /語法錯誤? Rgds, –