在值之后显示货币符号

时间:2011-03-11 12:15:06

标签: c# .net asp.net string-formatting currency

我正在使用CultureInfo方法将所有不同的货币成功格式化为正确的格式。

但是在某些例外情况下,例如欧元和瑞典克朗的货币,我需要能够在价值之后添加它们。目前,我的CultureInfo正在按照以下方式格式化它们:“SEK 1.00,00”,当它需要“1.00,00 SEK”时。

感谢任何帮助。

2 个答案:

答案 0 :(得分:8)

您只需要更改文化的NumberFormatInfo.CurrencyPositivePatternNumberFormatInfo.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 kr

答案 1 :(得分:1)

注意CurrencyNegativePattern

此代码

CultureInfo swedish = new CultureInfo("sv-SE");
swedish = (CultureInfo)swedish.Clone();
swedish.NumberFormat.CurrencyPositivePattern = 3;
swedish.NumberFormat.CurrencyNegativePattern = 3;

会给你

  

134,99 kr。

     

kr.134,99kr .-

将CurrencyNegativePattern更改为8

swedish.NumberFormat.CurrencyNegativePattern = 8;

会给你

  

134,99 kr。

     

-134,99 kr。

更多信息https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencynegativepattern(v=vs.110).aspx