Chirag Sudra Ответов: 0

Значение ячейки в 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;
        }

0 Ответов