Я потратил так много времени, пытаясь выяснить, как числа работают в разных культурах в C #. Я отсортировал все сценарии, за исключением случаев добавления числа в таблицу данных. В db у меня есть число в американском формате (например, 1.32), во внешнем интерфейсе, если культура немецкая, тогда в сетке она показывает 1,32.
Я могу конвертировать 1,32 в 1,32, используя
Convert.ToDouble("1.32").ToString(Culture.GetCultureInfo("de-DE"))
но когда я добавляю это в таблицу данных в столбце типа double, оно становится равным 132.0.
число в дБ имеет тип double. Вот как я пытаюсь преобразовать его в правильный формат культуры:
dt.Rows.Add(new Object[] { Convert.ToDecimal(ds.Tables[0].Rows[i][5]).ToString(culture.NumberFormat) })
Один из способов - отформатировать число в событии сетки, связанном с строкой, но является ли это правильным решением? Должен быть способ хранения определенного числа культур в datatable.