2

我有一个数据表,并且该数据表中的某些列具有 double 类型的值。

到目前为止一切都很好,但是当我得到这个值时,0.0000005它显示了一些 5E-9 指数值。

我需要显示相同的值而不是指数。

我应用了这样的文化信息,但它对我没有帮助:

NumberFormatInfo numberFormat = new NumberFormatInfo();
numberFormat.NumberGroupSeparator = string.Empty;
numberFormat.NumberDecimalDigits = 9;
CultureInfo info = new CultureInfo(CultureInfo.CurrentCulture.Name);
info.NumberFormat = numberFormat;

//data table having data
targetTable.Locale=info;

有人能帮帮我吗?

谢谢,

莫汉

4

2 回答 2

4

的文档DataTable.Locale没有说明设置数字格式的任何内容;它说:

获取或设置用于比较表中字符串的语言环境信息。

所以它可能不会做你期望它做的事情。

如果您要自动生成列,则可能需要将值存储为字符串,DataTable以便您可以指定格式。另一种选择是附加到AutoGeneratingColumn事件以设置自定义列属性:

摘自MSDN

private void dataGrid1_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    // Modify the header of the Name column.
    if (e.Column.Header.ToString() == "Name")
        e.Column.Header = "Task";
    // Replace the DueDate column with a custom template column.
    if (e.PropertyName == "DueDate")
    {
        // Create a new template column.
        DataGridTemplateColumn templateColumn = new DataGridTemplateColumn();
        templateColumn.Header = "Due Date";
        templateColumn.CellTemplate = (DataTemplate)Resources["dueDateCellTemplate"];
        templateColumn.CellEditingTemplate = (DataTemplate)Resources["dueDateCellEditingTemplate"];
        templateColumn.SortMemberPath = "DueDate";
        // ...
        // Replace the auto-generated column with the templateColumn.
        e.Column = templateColumn;
    }

    // Cancel AutoGeneration of all boolean columns.
    if (e.PropertyType == typeof(bool))
        e.Cancel = true;

    if (e.PropertyName == "ValueField")
    {
        (e.Column as DataGridTextColumn).Binding.StringFormat = "N5";
    }
}

我会说自动生成列是快速构建网格原型的好方法,但我通常最终直接配置列以指定数字格式等。

于 2013-07-24T14:54:50.120 回答
1

使用 Windows 窗体DataGrid,您可以使用如何:在 MSDN 上的 Windows 窗体 DataGridView 控件中格式化数据中描述的技术。

例如:

dataGridView1.Columns["YourColumn"].DefaultCellStyle.Format = "F9";

用于小数分隔符后的固定小数位数。

要查看"F9"有效的含义和其他字符串,请阅读Standard Numeric Format StringsCustom Numeric Format Strings。类似的格式字符串存在于DateTime, TimeSpan, enum 类型等。

于 2013-07-24T14:21:39.820 回答