我想使用逗号作为十进制,将空格作为千位,在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" };
答案 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");