3

我正在尝试创建一个根本不使用组的 NumberFormat。

我希望所有数字都显示为没有逗号。

例子:

  • 1999 而不是 1,999
  • 2000000 而不是 2,000,000
  • ETC...

不幸的是,我使用的是第三方控件,它是 NumericEditor,它在其上应用 CultureInfo 设置以显示逗号。所以我需要创建一个CultureInfo根本不使用 Grouping 的实例。

我试过这个:

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 = " ";

我根本不喜欢这个解决方案,因为它不是逗号,而是空格,而且看起来很奇怪。

有任何想法吗?

4

2 回答 2

1

您正在使用什么 3rd-Party 控件并且您是否尝试过反射(使用类似 .NET Reflector 的东西)来查看他们如何使用 CultureInfo 类,因为在常规的旧 C# 代码中,设置 NumberFormat.NumberGroupSize = new int[]{0 }; 与 NumberFormat.NumberGroupSeperator = String.Empty; 一样有效。似乎第 3 方控件可能以非标准方式使用 CultureInfo 属性。

于 2010-10-05T21:41:26.707 回答
0

考虑实现自定义格式化程序

您可以像这样分配自定义格式提供程序:

CultureInfo.CurrentCulture.NumberFormat = new MyCustomFormatter();

如果他们(第 3 方控制开发人员)没有实现一些“魔法”,这可能会奏效。

于 2010-10-06T07:24:31.927 回答