gpt4 book ai didi

C#数据表中的数字格式

转载 作者:行者123 更新时间:2023-12-02 17:43:26 26 4
gpt4 key购买 nike

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

有人能帮帮我吗?

谢谢,

莫涵

最佳答案

DataTable.Locale 的文档没有说任何关于设置数字格式的事情;它说:

Gets or sets the locale information used to compare strings within the table.

所以它可能不会按照您的预期去做。

如果您要自动生成列,您可能需要将值作为字符串存储在 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";
}
}

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

关于C#数据表中的数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17835966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com