2013-12-12 5 views
0

Представьте себе у меня есть следующие значения в строке, например:Преобразовать строки удвоятся (без использования «Преобразовать Class»)

string[] values = new string[] { "17.424", "44.43", "44.0"}; 

Теперь нужно извлечь точное значение с соответствующей запятой и сохранить их как Двойной числовой тип.

double valuesCorrectType; 

Я не хочу использовать это:

Convert.ToDouble(string); 

потому что выход я получаю: 17424,0 и 4443,0 и 44,0

Как я могу добиться этого?

+0

Вы говорите, значение, которое вы хотите преобразовать действительно «17,424, 44,43, 44,0», т.е. это не массив? –

+0

Эти значения являются примером координат из карты. Я могу иметь несколько двойных значений, но они находятся в строке. Мне нужно извлечь эти значения и сохранить их по переменной двойного числового типа. –

ответ

6

Просто пройти CultureInfo.InvariantCulture

double d = Convert.ToDouble("17.424", CultureInfo.InvariantCulture); 

Сво текущую культуру, которая рассматривает . как тысячи сепаратора.

Вы также можете использовать double.Parse или double.TryParse, но вы должны указать CultureInfo.InvariantCulture

+0

Я читал об этом, но не очень хорошо понимал, как его использовать, потому что конкретными точками являются координаты с карты. Я могу иметь 3 или 2 или 1 (или более) значения после запятой. "" не является разделителем тысяч значений. –

+0

Nevermind, это решение отлично работает для моей проблемы! Спасибо, сэр! –

+2

«Символ, используемый в качестве разделителя тысяч. В Соединенных Штатах этот символ является запятой (,). В Германии это период (.). Таким образом, одна тысяча двадцать пять отображается как 1025 в Соединенные Штаты и 1,025 в Германии ». Для вашего понимания см.: [Пошаговая глобализация] (http://msdn.microsoft.com/en-ca/goglobal/bb688127.aspx) – Habib

Смежные вопросы