2011-03-11 14 views
5

Tüm farklı para birimlerini doğru biçimde biçimlendirmek için CultureInfo yöntemlerini kullanıyorum.Para birimi simgesini sonra değerlerini göster

Ancak EUR ve SEK para birimleri gibi bazı istisnalar dışında, bunları değerden sonra ekleyebilmem gerekir. Şu anda CultureInfo'm onları şu şekilde biçimlendiriyor: "1.00,00 SEK" olması gerektiğinde "SEK 1.00,00".

Herhangi bir yardım için teşekkür ederiz.

cevap

7

İhtiyacınız olan tek şey, kültür için NumberFormatInfo.CurrencyPositivePattern ve NumberFormatInfo.CurrencyNegativePattern özelliklerini değiştirmektir.

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

ve sonra

var value = 123.99M; 
var result = value.ToString("C", swedish); 

size istenilen sonucu vermelidir:

Sadece orijinal kültürünü klonlamak. Bu sizi almalısınız:

123,99 kr

+0

Evet! Teşekkürler Alex. Sadece yaptıklarını anladım. İhtiyacım olan tek şey para birimi sembolünü sonuna taşımak için CurrencyPositivePattern ve CurrencyNegativePattern yöntemlerini eklemek oldu. – R100

+1

@ R100: Evet, ancak bunlar NumberFormatInfo sınıfının özellikleridir (yöntem değil). – Alex

1

CurrencyNegativePattern konusunda dikkatli olun

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

size

134 verecek

Bu kod, 99 kr.

kr.134,99kr.-

swedish.NumberFormat.CurrencyNegativePattern = 8; 

için CurrencyNegativePattern değiştirilmesi size

134,99 kr verecek.

-134,99 kr.

diğer bilgiler çalışır https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencynegativepattern(v=vs.110).aspx