C# 字符串到双问题,点被删除
我有一个字符串值,包含经度或纬度值 然而,当我尝试将其转换为双精度时,我最终得到一个数字,在该数字中,圆点被移除并放置在末尾 这不是我想要的。我错过了什么 这是我得到的值:C# 字符串到双问题,点被删除,c#,typeconverter,C#,Typeconverter,我有一个字符串值,包含经度或纬度值 然而,当我尝试将其转换为双精度时,我最终得到一个数字,在该数字中,圆点被移除并放置在末尾 这不是我想要的。我错过了什么 这是我得到的值:200,5,1.4928184,0.1609203这是我用来得到值的方法: var responseBytes = ms.ToArray(); var encoding = new System.Text.ASCIIEncoding(); var coords
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
-->我的点到哪里去了???您可能处于导致这种影响的文化(例如德语)下。解析时使用CultureInfo.InvariantCultre
Double.Parse("123.22",CultureInfo.InvariantCulture)
您可能处于导致这种影响的文化(如德语)下。解析时使用
CultureInfo.InvariantCultre
Double.Parse("123.22",CultureInfo.InvariantCulture)
荷兰制度可能与德国文化相同。这把它修好了。谢谢。或者在荷兰文化(或几乎任何欧洲大陆文化)下。@dtb,有着与德国文化相似的经历,不知道这对大多数欧洲文化来说都是正确的。更详细地说,在荷兰文化下,分隔符
“
被认为是数字的任意“分组”(千位分隔符,NumberGroupSeparator
)和,“
是分隔整数部分和小数部分的字符,因此42.012.345,67
是一个“好”荷兰数字。1.4928184
将与14.928.184
相同(分组分隔符或多或少被忽略,只是逗号).即使使用不变式CultureDutch系统,我也会遇到同样的问题。可能与德国文化相同。这解决了它。谢谢。或者在荷兰文化(或几乎任何欧洲大陆文化)下@dtb对德国文化有类似的经历,但不知道这对大多数欧洲文化都是正确的。要详细说明,在荷兰文化中,分隔符“
被认为是数字的任意“分组”(千位分隔符,NumberGroupSeparator
),”是分隔整数部分和小数部分的字符,因此42.012.345,67
是一个“好”荷兰数字。1.4928184
将与14.928.184
相同(分组分隔符或多或少被忽略,只是逗号)。即使使用不变量文化,我也会遇到同样的问题