Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据表中的C#数字格式_C#_Wpf_Datatable_Cultureinfo_Number Formatting - Fatal编程技术网

数据表中的C#数字格式

数据表中的C#数字格式,c#,wpf,datatable,cultureinfo,number-formatting,C#,Wpf,Datatable,Cultureinfo,Number Formatting,我有一个数据表,该数据表中的一些列具有double类型的值 到这里为止一切正常,但当我得到值为0.0000005时,它显示了一些5E-9指数值 我需要显示相同的值,而不是指数 我像这样应用了文化信息,但它不能帮助我: NumberFormatInfo numberFormat = new NumberFormatInfo(); numberFormat.NumberGroupSeparator = string.Empty; numberFormat.NumberDecimalDigits =

我有一个数据表,该数据表中的一些列具有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;
有人能帮我吗

谢谢


Mohan

通过Windows窗体
数据网格
,您可以使用MSDN中描述的技术

例如:

dataGridView1.Columns["YourColumn"].DefaultCellStyle.Format = "F9";
用于小数分隔符后的固定小数位数

要查看“F9”的含义以及其他有效字符串,请阅读并输入。存在用于
日期时间
时间跨度
、枚举类型等的similar格式字符串。

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

获取或设置用于比较表中字符串的区域设置信息

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

如果要自动生成列,则可能需要将值作为字符串存储在
数据表中
,以便指定格式。另一个选项是附加到
AutoGeneratingColumn
事件以设置自定义列属性:

摘录自:


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

你:它显示一些5E-9指数值。如何显示
targetTable
对象?也许你不需要改变文化;也许您可以在某个地方应用数字格式字符串。您需要在哪里显示值?在Visual Studio的DataTable Visualizer中?将DataTable附加到DataGrid..@AlexFilipovici不,我需要将具有此指数值的数据表更新为正常数字格式,然后附加到数据网格。请在将值绑定到数据网格的位置发布代码。
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";
    }
}