开发者

string to float conversion - decimal separator

开发者 https://www.devze.com 2023-01-03 23:27 出处:网络
I\'m having a problem with the following code: string latString = \"50.09445\"; float lat = Convert.ToSingle(latString);

I'm having a problem with the following code:

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

The second command throws a FormatException exception. I know that problem is that culture settings I'm using (cs-CZ) use comma as decimal separator and this string contains decimal point instead.

Is there some easy way to "ignore" the culture settings and always us开发者_JS百科e decimal point for the conversion? Or should I just avoid the problem by checking the string first and replace comma by the decimal point?


Use CultureInfo.InvariantCulture

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


Try the Convert.ToSingle(string, IFormatProvider) overload instead, and pass it the invariant culture (or whatever CultureInfo you want to be using instead):

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);
0

精彩评论

暂无评论...
验证码 换一张
取 消