我正在为危地马拉的非营利组织构建一个应用程序。系统中的所有内容都在Quetzales中,用Q(即Q100.00)表示为100 Quetzales。
我需要能够修改任何DataGridView列中的货币值,但我一直无法找到一种简单的方法来执行格式化,就像使用美元符号一样。我不想使用计算机区域设置,因为有些人使用该系统,使用来自美国的计算机。
不确定它是否重要,但是值来自“money”类型字段的sql server数据库。
答案 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));