0

我想格式化一个显示货币值的 DataGridView 列,但是我想使用自定义货币前缀,该前缀目前没有由任何文化定义。我希望我的价值观看起来像这样:

Mn. 2,300.00
Mn. 40,259.22
Mn. 6.33
Mn. 2,000,203.19

显然,Mn.是我要添加的前缀。除了这种自定义,值本身的格式与任何其他货币一样(即 2 位小数,每 3 位数字后的逗号等..)

4

2 回答 2

4

(这个自我回答之前是由问题 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)朝着正确的方向前进。

于 2018-05-24T10:12:14.943 回答
2

您需要管理自己的NumberFormatInfo对象,其中包含一个CurrencySymbol属性。您可以将此对象传递给decimal.ToString()方法。

var format = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
format.CurrencySymbol = "Mn. ";
var amount = 12345.67m;
Console.WriteLine(amount.ToString("C", format));
于 2012-12-23T19:39:39.010 回答