Значение ячейки в datarow изменяется автоматически после извлечения из datatable
Я использую общий метод для преобразования DataTable в List<dictionary<string,object> & gt;.
Я получаю некоторые значения float в DataTable, значения верны, но при вводе цикла на DataTable для извлечения значений я сначала получаю DataRow. Это время, когда мои ценности меняются.
Например, значение в ячейке DataTable равно 947.8, но при извлечении его из DataRow оно дает что-то вроде 947.80000000007.
Что я уже пробовал:
Это моя общая функция, используемая для преобразования.
public static List<Dictionary<string, object>> ToList(DataTable dtable) { Dictionary<string, object> dict = null; List<Dictionary<string, object>> lookUpData = new List<Dictionary<string, object>>(); try { foreach (DataRow drow in dtable.Rows) { dict = new Dictionary<string, object>(); for (int intCol = 0; intCol <= dtable.Columns.Count - 1; intCol++) { if (!string.IsNullOrEmpty(drow[intCol].ToString().Trim())) { dict.Add(dtable.Columns[intCol].ColumnName.Trim(), drow[intCol]); } else { dict.Add(dtable.Columns[intCol].ColumnName.Trim(), null); } } lookUpData.Add(dict); } } catch (Exception ex) { throw ex; } return lookUpData; }