2010-09-12 5 views
1

Я создаю приложение, предназначенное для некоммерческих организаций в Гватемале. Все в системе находится в Кетцалесе, которое обозначается Q (то есть Q100.00) - 100 Quetzales.

Мне нужно иметь возможность изменять денежные значения в любом столбце DataGridView, но мне не удалось найти простой способ сделать это с форматированием, как вы можете, с помощью знака доллара. Я не хочу использовать настройки компьютерной области, потому что некоторые люди, использующие эту систему, используют компьютеры из США.

Не уверен, что это важно, но значения выходят из базы данных sql-сервера из поля типа «деньги».

ответ

4

При форматировании строки вы можете указать, какие культуры вы хотите использовать:

decimal cost = 1500m; 
string s = cost.ToString("C", CultureInfo.GetCultureInfo("es-GT")); 

Результат

 
Q1,500.00 
+0

Отлично! Я предполагаю, что это именно то, что мне нужно для форматирования всех данных в столбцах. Благодаря! – Ricky

3

Если вы не хотите, чтобы полагаться на региональные настройки вы можете заставить приложение к выполнять с использованием культуры Гватемалы, независимо от региональных настроек.

CultureInfo culture = new CultureInfo("es-GT"); 
decimal amount = 123.43M; 

// Set the culture for the thread 
System.Threading.Thread.CurrentThread.CurrentCulture = culture; 

// Uses the thread culture for formatting 
MessageBox.Show(amount.ToString("c")); 

// Alternatively if you do not want to set the thread culture 
// you can explicitly format using the passed culture 
MessageBox.Show(amount.ToString("c", culture)); 
+1

Awww. Когда я вижу такие вещи, я действительно думаю, что я бы хотел перейти на C# один день. (Исходя из PHP) Sweet! –

Смежные вопросы