Установите точку вместо запятой в числовых значениях - PullRequest
47 голосов
/ 06 февраля 2012

У меня есть новый объект XmlDocument, например xml создается во время моей программы ...

Я хочу, чтобы все числовые значения в созданном xml были по умолчанию с символом точки вместо запятой.

Могу ли я сделать что-то, чтобы объявить это один раз, чтобы не анализировать каждое десятичное значение?

т.е. Чтобы установить эту точку вместо запятой где-то в начале и не беспокоиться об этом до конца?

Ответы [ 3 ]

93 голосов
/ 06 февраля 2012

Попробуйте это:

System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
customCulture.NumberFormat.NumberDecimalSeparator = ".";

System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
21 голосов
/ 06 февраля 2012

Вы можете использовать value.ToString(CultureInfo.InvariantCulture) для преобразования ваших числовых значений в строки.Или вы можете глобально изменить текущую культуру на культуру, которая использует точку в качестве десятичного разделителя:

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
8 голосов
/ 06 февраля 2012

Используйте Decimal.ToString (..) с System.Globalization.CultureInfo.InvariantCulture как примененный параметр.

или, если вы хотите сделать это глобально, используйте

CurrentCulture для установки всегда Invariant единица, используя свойство Applicaton.CurrentCulture .

...