我遇到以下代码的问题:
string latString = "50.09445";
float lat = Convert.ToSingle(latString);
第二个命令抛出FormatException异常。我知道问题是我正在使用的文化设置(cs-CZ)使用逗号作为小数点分隔符而这个字符串包含小数点。
是否有一些简单的方法可以“忽略”文化设置并始终使用小数点进行转换?或者我应该先通过检查字符串并用小数点替换逗号来避免这个问题吗?
答案 0 :(得分:20)
使用CultureInfo.InvariantCulture
float lat = Convert.ToSingle("50.09445", CultureInfo.InvariantCulture);
答案 1 :(得分:2)
尝试使用Convert.ToSingle(string, IFormatProvider)
overload,然后将其传递给不变文化(或者您希望使用的任何CultureInfo
):
float lat = Convert.ToSingle(latString, CultureInfo.InvariantCulture);
答案 2 :(得分:2)
string latString = "50.09445";
float lat = float.Parse(latString, CultureInfo.InvariantCulture);
答案 3 :(得分:1)
Single.Parse(latString, System.Globalization.CultureInfo.InvariantCulture);