CultureInfo.NumberFormat Скрыть запятую - PullRequest
2 голосов
/ 05 октября 2010

Я пытаюсь создать NumberFormat, который вообще не будет использовать группы.

Я бы хотел, чтобы все числа отображались без запятых.

Пример:

  • 1999 вместо 1 999
  • 2000000 вместо 2 000 000
  • и т. Д.

К сожалению, я использую сторонний элемент управления, который является NumericEditor ион применяет настройку CultureInfo для отображения запятых.Поэтому мне нужно создать экземпляр CultureInfo, который вообще не использует группировку.

Я пробовал это:

int[] groupSize = {0};
CultureInfo culture = new CultureInfo("en-US");
culture.NumberFormat.NumberGroupSizes = groupSize;

Также ...

 CultureInfo culture = new CultureInfo("en-US");
 culture.NumberFormat.NumberGroupSeparator = String.Empty; // Throws and exception with the 3rd party control

Самое близкое, что я получил, это ...

 CultureInfo culture = new CultureInfo("en-US");
 culture.NumberFormat.NumberGroupSeparator = " ";

Мне вообще не нравится это решение, потому что вместо запятой его пробел, и он определенно выглядит странным.

Любойидеи?

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Какой сторонний элемент управления вы используете и пытались ли вы отразить (используя что-то вроде .NET Reflector), чтобы увидеть, как они используют класс CultureInfo, потому что в обычном старом коде C # установка NumberFormat.NumberGroupSize = new int [] {0};работает так же, как NumberFormat.NumberGroupSeperator = String.Empty ;.Похоже, что сторонний элемент управления может использовать свойства CultureInfo нестандартным способом.

0 голосов
/ 06 октября 2010

Рассмотрите возможность реализации пользовательского форматера .

Вы можете назначить своего провайдера нестандартного формата следующим образом:

CultureInfo.CurrentCulture.NumberFormat = new MyCustomFormatter();

Это может сработать, если они (сторонние разработчики элементов управления) не реализуют "магию".

...