字符串到浮点转换 – 小数点分隔符

我遇到以下代码的问题:

string latString = "50.09445"; float lat = Convert.ToSingle(latString); 

第二个命令抛出FormatExceptionexception。 我知道问题是我正在使用的文化设置(cs-CZ)使用逗号作为小数点分隔符而这个字符串包含小数点。

是否有一些简单的方法可以“忽略”文化设置并始终使用小数点进行转换? 或者我应该通过先检查字符串并用小数点替换逗号来避免问题?

使用CultureInfo.InvariantCulture

 float lat = Convert.ToSingle("50.09445", CultureInfo.InvariantCulture); 

尝试使用Convert.ToSingle(string, IFormatProvider)重载 ,并将其传递给不变文化(或者您希望使用的任何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);