当数字分开时对数字进行排序
sorting numbers when their digits are separated
我的数据网格中有一列显示了一些数字。由于这些数字太大,为了更容易阅读,我需要将它们的数字分开。(1985318 -> 1,985,318) 我使用以下代码执行此操作:
int value = (int) Convert.ToInt64(GridView.Rows[i].Cells[j].Value);
string seperated = value.ToString("N1", CultureInfo.InvariantCulture);
GridView.Rows[i].Cells[j].Value = seperated.Remove(seperated.Length - 2);
显然我必须将这些数字的数据类型分配给 MS Access
中的 "LongText"
(因为“1,985,318”不是数字)。但问题是,由于它们被定义为字符串而不是数字,所以当我尝试对它们进行排序时,它们没有正确排序。
我以为我不能同时将它们的数字分开并正确排序。
你对如何完成有什么建议吗?
正如 RobertBaron 提到的那样,我使用字符串格式化解决了这个问题。我在 Grid_CellFormatting EventHandler 中使用了以下代码:
private void Grid_CellFormatting(object sender, CellFormattingEventArgs e)
{
GridViewDecimalColumn myCol = Grid.Columns[2] as GridViewDecimalColumn;
myCol.FormatString = "{0:###,###,###,###,###,###,###}";
}
我的数据网格中有一列显示了一些数字。由于这些数字太大,为了更容易阅读,我需要将它们的数字分开。(1985318 -> 1,985,318) 我使用以下代码执行此操作:
int value = (int) Convert.ToInt64(GridView.Rows[i].Cells[j].Value);
string seperated = value.ToString("N1", CultureInfo.InvariantCulture);
GridView.Rows[i].Cells[j].Value = seperated.Remove(seperated.Length - 2);
显然我必须将这些数字的数据类型分配给 MS Access
中的 "LongText"
(因为“1,985,318”不是数字)。但问题是,由于它们被定义为字符串而不是数字,所以当我尝试对它们进行排序时,它们没有正确排序。
我以为我不能同时将它们的数字分开并正确排序。
你对如何完成有什么建议吗?
正如 RobertBaron 提到的那样,我使用字符串格式化解决了这个问题。我在 Grid_CellFormatting EventHandler 中使用了以下代码:
private void Grid_CellFormatting(object sender, CellFormattingEventArgs e)
{
GridViewDecimalColumn myCol = Grid.Columns[2] as GridViewDecimalColumn;
myCol.FormatString = "{0:###,###,###,###,###,###,###}";
}