2010-11-12 3 views
2

Я программирую на C# .NET. У меня есть строка, которая содержит число с периодом как десятичным. Как я могу правильно разобрать это в double, независимо от настроек локализации/языка. Строковое значение всегда будет одинаковым.Как разобрать число с десятичной точностью, независимо от языка

Я думаю, что мне нужно использовать перегрузку синтаксиса double.Parse(string s, IFormatProvider i), но я не понимаю, как его использовать.

ответ

5

Для параметра IFormatProvider, пройти CultureInfo.InvariantCulture. Он находится в пространстве имен System.Globalization.

+0

является InvariantCulture лучше, чем другие решения, которые я нашел ниже? – PICyourBrain

+0

Я не в США, поэтому для меня культура США не подходит вообще. В этом случае - разбор двойника - культура США и инвариантная культура будут делать то же самое. –

+1

@Jordan: InvariantCulture четко сообщает, что вы разбираете сменный формат. И, конечно, double.Parse (someString, CultureInfo.InvariantCulture); короче вашего примера (да, я знаю ...;)). –

0

Что об этом ...

CultureInfo ci = new CultureInfo("en-US"); 
myDouble= double.Parse("32.2", ci.NumberFormat); 
Смежные вопросы