0条评论
还没有人评论过~
遍历DataTable中列头以d开头的列,都格式化2为小数~~
有更好的处理方式吗?
var listColumns = new List<string>();
foreach (DataTable item in SysVar.FCurryFormInfo.dsBillDataSet.Tables)
{
listColumns.Clear();
for (int i = 0; i < item.Columns.Count; i++)
{
//只处理d开头数值,i开头整形不用处理
if (item.Columns[i].ColumnName.Left(1).ToLower().Equals("d"))
{
listColumns.Add(item.Columns[i].ColumnName);
}
}
foreach (DataRow dataRow in item.Rows)
{
foreach (string str in listColumns)
{
dataRow.BeginEdit();
dataRow[str] = Math.Round(dataRow[str].ToStringExt().ToDecimalExt(0), 2, MidpointRounding.AwayFromZero);
dataRow.EndEdit();
}
}
}
如果是效率,没什么“更好”吧?如果是优雅的方式,那应该有?
更好是什麼?效能更好?更簡潔?
试试修改列的format,类似:gl_dt.Columns["price"].DataType = typeof(decimal);
GG,后面在优化吧