Региональные проблемы Windows Phone - PullRequest
3 голосов
/ 22 января 2011

У меня есть текстовый файл, который нужно проанализировать в приложении, и это было проверено на моем устройстве в Великобритании и в США. Этот же текстовый файл используется приложениями для Android и iPhone, которые работают нормально. Мне сообщили, что некоторые люди на Windows Phone не работают!

Оказывается, если устройство настроено на такой регион, как Германия, который использует запятую "," в качестве десятичной точки, то следующий код не работает должным образом!

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

Поскольку слова появляются в виде строки, я не уверен, как еще я могу получить это в двойном из строки?

EDIT: На немного связанной ноте следующее также вызывает у меня горе!

geoWatcher.Position.Location.Latitude.ToString()

Это вернет 56 888 для Европы и 56 888 для США / Великобритании!

Arrrgh!

1 Ответ

1 голос
/ 22 января 2011

Вместо использования Convert.ToDouble используйте double.parse(...):

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

Существует также перегрузка double.ToString(), которая принимает средство форматирования, и вы можете использовать эту перегрузку для создания строковых представлений double любым удобным для вас способом.

...