逗号作为小数分隔符空格作为千位分隔符C# [重复]
Posted
技术标签:
【中文标题】逗号作为小数分隔符空格作为千位分隔符C# [重复]【英文标题】:Comma as decimal separator space as thousand separator C# [duplicate] 【发布时间】:2019-06-07 12:16:42 【问题描述】:我想在我的 WPF DataGrid 中显示我的十进制类型数字,使用 comma 作为 decimal 和 space 作为 千 > 分隔符,小数点最大长度为 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中读取数据