Это сводит меня с ума. У меня есть следующая строка на странице веб-формы ASP.NET 2.0
string s = "0.009";
Достаточно просто. Теперь, если моя культура испанская, то есть «es-ES», и я пытаюсь преобразовать строку в Double, я делаю следующее:
double d = Double.Parse(s, new CultureInfo("es-ES"));
что бы я ожидал, 0,009. Вместо этого я получаю 9. Я понимаю, что .NET думает, что это разделитель тысяч, который в en-US является запятой, но не должен ли он взять информацию о культуре, которую я передаю методу разбора, и применить правильный формат конверсия?
Если я делаю
double d = 0.009D;
string formatted = d.ToString(new CultureInfo("es-ES"));
отформатирован теперь 0,009. Кто-нибудь?