我有一个字符串值,包含经度或纬度值。
但是,当我尝试将其转换为double时,我最终得到一个数字,其中点被移除并放在最后。
这不是我想要的。我错过了什么?
这是我得到的值:200,5,1.4928184,0.1609203
这是我用来获取值的方法:
var responseBytes = ms.ToArray();
var encoding = new System.Text.ASCIIEncoding();
var coords = encoding.GetString(responseBytes);
var parts = coords.Split(new char[] { ',' });
//this piece of code returns me wrong values! When I debug this piece parts[2] is exactly 1.4928184
return new Coordinaat(Double.Parse(parts[2]),
Double.Parse(parts[3]));
请参阅下面的代码示例,了解构造函数:
public Coordinaat(double lat, double lon)
{
this.Latitude = lat;
this.Longitude = lon;
}
输出:
lat 114928184 lon 01609203
- >我的小点在哪里去了?
答案 0 :(得分:5)
你可能正处于导致这种影响的文化(例如德国)之下。解析时使用CultureInfo.InvariantCultre
。
Double.Parse("123.22",CultureInfo.InvariantCulture)