逗号作为小数分隔符空格作为千​​位分隔符C# [重复]

Posted

技术标签:

【中文标题】逗号作为小数分隔符空格作为千​​位分隔符C# [重复]【英文标题】:Comma as decimal separator space as thousand separator C# [duplicate] 【发布时间】:2019-06-07 12:16:42 【问题描述】:

我想在我的 WPF DataGrid 中显示我的十进制类型数字,使用 comma 作为 decimalspace 作为 > 分隔符,小数点最大长度为 4

我真的被这个 StringFormat 属性弄糊涂了,我似乎找不到我必须指定的字符串的含义。

例子:

1234567890.987654 --> 1 234 567 890,988

重要编辑:

这个问题的第二个主要部分是如何在WPF Datagrid中做到这一点,我将在这里发布,如何从代码中更改列的绑定:

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

【问题讨论】:

你应该发布你如何尝试“字符串化”号码。你在应用文化吗?还是 ToString() 方法中的特定格式? 【参考方案1】:

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

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

【讨论】:

以上是关于逗号作为小数分隔符空格作为千​​位分隔符C# [重复]的主要内容,如果未能解决你的问题,请参考以下文章

当某些行包含逗号作为千位分隔符和“标志并且没有小数的行没有标志时如何在R中读取数据

带有千位分隔符和小数的数字格式(如有必要)

当某些数字包含逗号作为千位分隔符时如何读取数据?

javascript 如何使用逗号作为千位分隔符在JavaScript中打印数字

导入包含逗号、千位分隔符和尾随减号的 CSV 数据

使用 pandas.read_csv 读取带有空格的 CSV 文件作为千位分隔符