我正在为危地马拉的非营利组织构建一个应用程序。系统中的所有内容都以格查尔为单位,用 Q 表示(即 Q100.00)是 100 格查尔。
我需要能够修改任何 DataGridView 列中的货币值,但我一直无法找到一种简单的方法来像使用美元符号那样进行格式化。我不想使用计算机区域设置,因为有些人使用系统,使用来自美国的计算机。
不确定它是否重要,但值来自 'money' 类型字段的 sql server 数据库。
我正在为危地马拉的非营利组织构建一个应用程序。系统中的所有内容都以格查尔为单位,用 Q 表示(即 Q100.00)是 100 格查尔。
我需要能够修改任何 DataGridView 列中的货币值,但我一直无法找到一种简单的方法来像使用美元符号那样进行格式化。我不想使用计算机区域设置,因为有些人使用系统,使用来自美国的计算机。
不确定它是否重要,但值来自 'money' 类型字段的 sql server 数据库。
格式化字符串时,您可以指定要使用的文化:
decimal cost = 1500m;
string s = cost.ToString("C", CultureInfo.GetCultureInfo("es-GT"));
结果
Q1,500.00
如果您不想依赖区域设置,则可以强制应用程序使用危地马拉文化执行,而不管区域设置如何。
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));