我有一个需要在应用程序中解析的文本文件,这是在我的英国设备和美国设备上测试的。这个相同的文本文件被Android和iPhone应用程序使用,工作正常。据我所知,Windows手机上的某些人无法正常工作!
事实证明,如果将设备设置为像德国这样使用逗号“,”作为小数点的区域,则以下代码无法正常工作!
GeoCoordinate tempCoord = new GeoCoordinate();
tempCoord.Latitude = Convert.ToDouble(words[0]);
tempCoord.Longitude = Convert.ToDouble(words[1]);
当单词以字符串形式出现时,我不知道我怎么能把它变成字符串的双精度?
编辑: 在一个稍微相关的说明中,以下也让我感到悲伤!
geoWatcher.Position.Location.Latitude.ToString()
欧洲将返回56,888,美国/英国将返回56.888!
Arrrgh!
答案 0 :(得分:1)
不使用Convert.ToDouble
,而是使用double.parse(...)
:
double d = double.Parse("3.500,02", CultureInfo.GetCultureInfo("de-DE").NumberFormat);
还有一个带有格式化程序的double.ToString()
重载,您可以使用此重载以您希望的方式生成double
的字符串表示。