我正在使用CultureInfo方法成功地将所有不同的货币格式化为它们正确的格式。
但是在某些例外情况下,例如欧元和瑞典克朗货币,我需要能够在价值后面添加它们。目前我的CultureInfo将它们格式化为以下方式:"SEK 1.00,00",而它应该是"1.00,00 SEK"。
任何帮助都将不胜感激。
我正在使用CultureInfo方法成功地将所有不同的货币格式化为它们正确的格式。
但是在某些例外情况下,例如欧元和瑞典克朗货币,我需要能够在价值后面添加它们。目前我的CultureInfo将它们格式化为以下方式:"SEK 1.00,00",而它应该是"1.00,00 SEK"。
任何帮助都将不胜感激。
您所需的就是更改文化中的 NumberFormatInfo.CurrencyPositivePattern
和 NumberFormatInfo.CurrencyNegativePattern
属性。
只需克隆原始文化即可:
CultureInfo swedish = new CultureInfo("sv-SE");
swedish = (CultureInfo)swedish.Clone();
swedish.NumberFormat.CurrencyPositivePattern = 3;
swedish.NumberFormat.CurrencyNegativePattern = 3;
然后
var value = 123.99M;
var result = value.ToString("C", swedish);
123.99 克郎
请注意 CurrencyNegativePattern
这段代码
CultureInfo swedish = new CultureInfo("sv-SE");
swedish = (CultureInfo)swedish.Clone();
swedish.NumberFormat.CurrencyPositivePattern = 3;
swedish.NumberFormat.CurrencyNegativePattern = 3;
我会给你
134.99 克朗。
克朗 134.99 克朗 -
将货币的NegativePattern更改为8。
swedish.NumberFormat.CurrencyNegativePattern = 8;
会给你
134.99 克朗。
-134.99 克朗。
string.Format(CultureInfo.CurrentCulture, "{0:C}", moneyValue.DataAmount)
NumberFormatInfo
类的属性(不是方法)。 - Oleks