【问题标题】:c# display number in datagrid with decimal separatorc#在datagrid中显示数字,带小数点分隔符
【发布时间】:2023-04-05 06:43:01
【问题描述】:

我打赌我看起来不太好,但我似乎找不到以下问题的答案:

我有一个 Datagrid,它将显示多个带有数字的列,有些列会超过千位,但我似乎无法让它显示小数分隔符,我将数字保存为十进制值,但它不会显示它。

感谢您花时间查看我的问题 :)

编辑:这是关于在 Windows 窗体的数据网格中显示它

【问题讨论】:

  • 这是什么技术? ASP.NET? WPF?
  • 抱歉没提,winForms

标签: c# winforms datagrid decimal


【解决方案1】:

尝试在您的DataGridTextBoxColumn 上设置Format 属性。您使用的格式大概是"N0",它显示千位分隔符,但没有小数位。

 DataGridTextBoxColumn textColumn = new DataGridTextBoxColumn();
 textColumn.HeaderText = "My Numbers";
 textColumn.ReadOnly = true;
 textColumn.Format = "N0";
 text

编辑:如果您希望数字始终保持一致的格式,而与运行应用程序的机器的文化无关,那么您也应该设置FormatInfo

计算机的CultureInfo 用于确定实际的货币格式。您可以通过将 FormatInfo 属性设置为使用适当的区域性 ID 构造的新 CultureInfo 实例来更改 DataGridTextBoxColumnCultureInfo

例如,如果您在德国并且总是希望千位分隔符显示为句点(例如 12.345.678)而不是逗号(例如 12,345,678),请使用:

 textColumn.FormatInfo = new CultureInfo("de-DE");

通过在启动时设置 Application.CurrentCulture 属性来更改整个应用程序的文化,您可能会获得更好的一致性。

【讨论】:

  • 我的印象是 OP 需要“小数分隔符”。顺便说一句,我们不知道所需的文化信息。
  • 我认为 OP 混淆了这个术语,并且指的是 千位分隔符(“有些会超过千位”)。
  • 谢谢,就是这样。抱歉没有更清楚,感谢您理解我的意思!
  • DataGridView 呢?我正在使用带有十进制列的 C# DataGridView 来表示货币价值。我如何应用千位分隔符格式?导致DataGridView的DataGridViewTextBoxColumn不支持Format属性!
【解决方案2】:

对于DataGridView,其DataGridViewTextBoxColumn没有Format属性,我们需要设置格式如下:

var col = new DataGridViewTextBoxColumn();
var colFormat = new DataGridViewCellStyle();
colFormat.Format = "N0";
col.DefaultCellStyle = colFormat;

【讨论】:

    猜你喜欢
    • 2016-02-06
    • 2016-10-29
    • 2021-09-14
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多