我在用下面的代碼中的問題:串浮動轉換 - 十進制分隔
string latString = "50.09445";
float lat = Convert.ToSingle(latString);
第二個命令拋出一個出現FormatException異常。我知道問題在於我使用的文化設置(cs-CZ)使用逗號作爲小數點分隔符,而此字符串包含小數點。
是否有一些簡單的方法來「忽略」文化設置並始終使用小數點進行轉換?或者我應該通過首先檢查字符串並用小數點替換逗號來避免這個問題?
我在用下面的代碼中的問題:串浮動轉換 - 十進制分隔
string latString = "50.09445";
float lat = Convert.ToSingle(latString);
第二個命令拋出一個出現FormatException異常。我知道問題在於我使用的文化設置(cs-CZ)使用逗號作爲小數點分隔符,而此字符串包含小數點。
是否有一些簡單的方法來「忽略」文化設置並始終使用小數點進行轉換?或者我應該通過首先檢查字符串並用小數點替換逗號來避免這個問題?
使用CultureInfo.InvariantCulture
float lat = Convert.ToSingle("50.09445", CultureInfo.InvariantCulture);
嘗試Convert.ToSingle(string, IFormatProvider)
overload代替,並把它傳遞不變文化(或任何你想要的CultureInfo
被使用來代替):
float lat = Convert.ToSingle(latString, CultureInfo.InvariantCulture);
string latString = "50.09445";
float lat = float.Parse(latString, CultureInfo.InvariantCulture);
Single.Parse(latString, System.Globalization.CultureInfo.InvariantCulture);