2011-01-22 32 views
3

我有一個文本文件,需要在應用程序中解析,並在我的英國設備和美國設備上進行了測試。 Android和iPhone應用程序使用同樣的文本文件可以正常工作。據我所知,Windows手機上的一些人無法使用!Windows Phone地區問題

事實證明,如果設備設置爲像德國那樣使用逗號「,」作爲小數點的區域,那麼以下代碼無法正常工作!

GeoCoordinate tempCoord = new GeoCoordinate(); 
tempCoord.Latitude = Convert.ToDouble(words[0]); 
tempCoord.Longitude = Convert.ToDouble(words[1]); 

由於字作爲字符串進來我不知道我怎麼能把它從字符串中得到一個double?

編輯: 在略有相關的說明,以下也令我傷心!

geoWatcher.Position.Location.Latitude.ToString() 

這將返回56,888歐洲和56.888美國/英國!

Arrrgh!

+0

來自德國與英國與美國的樣本Geocoordinate的樣子是什麼? – Aaronontheweb 2011-01-22 17:43:24

+0

50,676與50.676相比 – 2011-01-22 17:45:42

回答

1

而不是使用Convert.ToDouble的,使用double.parse(...)

double d = double.Parse("3.500,02", CultureInfo.GetCultureInfo("de-DE").NumberFormat); 

另外還有一點需要格式化的double.ToString()過載,您可以使用此重載產生任何方式你想一個double的字符串表示。