Это общая проблема глобализации. То, что вы должны определить, - это единая культура, в которой хранится сама информация, поскольку вы храните ее как строковое значение. Затем ВСЕ ВСЕ ваши данные вводятся и обрабатываются с использованием этой культуры. В нашем коде, мы имеем несколько блоков, которые внешне похожи на это для того, чтобы справиться с поликультурного математики и отображения данных:
//save current culture and set to english
CultureInfo current = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
//Do Math and Data things
//restore original culture
System.Threading.Thread.CurrentThread.CurrentCulture = current;
Таким образом, вы можете убедиться, что все данные обрабатываются и хранятся таким же образом, независимо от того, какая культура используется для создания или отображения данных.
Редактировать
Для сохранения данных и преобразование числа в строку, вы могли бы сделать вещи точно так же. Хотя у вас есть текущие настройки CultureInfo как «en-US», методы .ToString()
со всех номеров будут использовать «.». вместо «,» для десятичной точки. Другой способ сделать это - указать поставщика формата при вызове .ToString().
decimalNumber.ToString(new CultureInfo("en-US"));
Это указывает, что при преобразовании числа в строку используйте NumberFormat из предоставленной культуры.
Почему вы используете запятую вместо точки? – XTGX
Где вы получаете сообщение об ошибке? Если это проблема с хранением данных в базе данных, нам нужно будет увидеть ваш код SQL. –
Вы можете использовать простую строку 'string.Replace' для замены запятых точками. – Nolonar