.NET: Можно ли изменить формат, используемый double.ToString ()? - PullRequest
1 голос
/ 15 января 2012

У меня есть какой-то сторонний код, который вызывает double.ToString().Моя проблема в том, что реализация по умолчанию double.ToString() заменяет десятичную точку запятой, например:

49.99.ToString() == "49,99"

Это происходит, потому что по умолчанию double.ToString() использует CultureInfo.CurrentCulture, тогда как мне нужно, чтобы это былоCultureInfo.InvariantCulture.Действительно, обратите внимание:

49.99.ToString(CultureInfo.InvariantCulture) == "49.99"
49.99.ToString(CultureInfo.CurrentCulture) == "49,99"

Есть ли способ изменить текущую культуру на инвариантную, чтобы double.ToString() работал так, как мне нужно?

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

Спасибо.

1 Ответ

1 голос
/ 15 января 2012

Вы можете установить информацию о культуре текущего потока, которая используется по умолчанию:

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

, а если это веб-приложение, вы можете установить атрибуты culture и uiCulture дляэлемент <globalization> в вашем web.config.

...