DataGridView字段值中的货币符号(而不是$)

时间:2010-09-12 17:44:03

标签: c# datagridview currency number-formatting

我正在为危地马拉的非营利组织构建一个应用程序。系统中的所有内容都在Quetzales中,用Q(即Q100.00)表示为100 Quetzales。

我需要能够修改任何DataGridView列中的货币值,但我一直无法找到一种简单的方法来执行格式化,就像使用美元符号一样。我不想使用计算机区域设置,因为有些人使用该系统,使用来自美国的计算机。

不确定它是否重要,但是值来自“money”类型字段的sql server数据库。

2 个答案:

答案 0 :(得分:4)

格式化字符串时,您可以指定要使用的文化:

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

结果

Q1,500.00

答案 1 :(得分:3)

如果您不想依赖区域设置,您可以强制使用Guatamala文化执行应用程序,无论区域设置如何。

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));