逗号作为小数点分隔符空间作为千位分隔符C#

时间:2019-06-07 12:16:42

标签: c# decimal string-formatting

我想使用逗号作为十进制,将空格作为千位,在WPF数据网格中显示十进制类型数字。 >分隔符,其小数位数最多4个最大长度

我真的对这个 StringFormat 属性感到困惑,我似乎找不到我必须指定的字符串的含义。

示例:

1234567890.987654 --> 1 234 567 890,988

重要编辑:

此问题的第二个主要部分是如何在 WPF Datagrid 中执行此操作,我将在此处发布如何从代码更改列的绑定:

        (stockDataGrid.Columns[1] as DataGridTextColumn).Binding = new Binding("Amount") { ConverterCulture = culture, StringFormat = "c" };

1 个答案:

答案 0 :(得分:2)

您必须同时指定格式字符串和格式信息:

  decimal source = 1234567890.987654m;

  string result = source.ToString(
    "###,###,###,###.###", 
     new NumberFormatInfo() {
       NumberGroupSeparator = " ",
       NumberDecimalSeparator = ","});

如果太复杂了,您必须以这种方式格式化许多货币,则可以修改区域性:

  CultureInfo culture = CultureInfo.CurrentCulture.Clone() as CultureInfo;

  culture.NumberFormat.CurrencyGroupSeparator = " ";
  culture.NumberFormat.CurrencyDecimalSeparator = ",";
  culture.NumberFormat.CurrencySymbol = "";
  culture.NumberFormat.CurrencyDecimalDigits = 3;
  culture.NumberFormat.CurrencyGroupSizes = new int[] {3};

  CultureInfo.CurrentCulture = culture;

  ...

  decimal source = 1234567890.987654m;

  string result = source.ToString("c");
相关问题