我想格式化一个显示货币值的 DataGridView 列,但是我想使用自定义货币前缀,该前缀目前没有由任何文化定义。我希望我的价值观看起来像这样:
Mn. 2,300.00
Mn. 40,259.22
Mn. 6.33
Mn. 2,000,203.19
显然,Mn.
是我要添加的前缀。除了这种自定义,值本身的格式与任何其他货币一样(即 2 位小数,每 3 位数字后的逗号等..)
我想格式化一个显示货币值的 DataGridView 列,但是我想使用自定义货币前缀,该前缀目前没有由任何文化定义。我希望我的价值观看起来像这样:
Mn. 2,300.00
Mn. 40,259.22
Mn. 6.33
Mn. 2,000,203.19
显然,Mn.
是我要添加的前缀。除了这种自定义,值本身的格式与任何其他货币一样(即 2 位小数,每 3 位数字后的逗号等..)
(这个自我回答之前是由问题 OP 作为对问题的编辑发布的。内容迁移到这个答案。)
var format = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
format.CurrencySymbol = "Mn. ";
qBDDataGridView.Columns["Base Selling Price"].DefaultCellStyle.FormatProvider = format;
qBDDataGridView.Columns["Base Selling Price"].DefaultCellStyle.Format = "c";
以上将格式化一个名为的列"Base Selling Price"
,DataGridView
以使用货币的自定义符号'Mn.'
。希望这被证明对其他人也有用。归功于 Jason Whitted的回答,
它引导我(问题 OP)朝着正确的方向前进。
您需要管理自己的NumberFormatInfo
对象,其中包含一个CurrencySymbol
属性。您可以将此对象传递给decimal.ToString()
方法。
var format = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
format.CurrencySymbol = "Mn. ";
var amount = 12345.67m;
Console.WriteLine(amount.ToString("C", format));