字符串到浮点转换 – 小数点分隔符
我遇到以下代码的问题:
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);