2011-03-11 13 views
5

Estoy utilizando los métodos de CultureInfo para formatear correctamente todas las monedas diferentes en su formato correcto.Mostrar el símbolo de moneda después de los valores

Pero en algunas excepciones, como las monedas EUR y SEK, necesito poder agregarlas después del valor. Por el momento, CultureInfo los está formateando de la siguiente manera: "SEK 1.00,00" cuando debe ser "1.00,00 SEK".

Cualquier ayuda es apreciada.

Respuesta

7

Todo lo que necesita es cambiar las propiedades NumberFormatInfo.CurrencyPositivePattern y NumberFormatInfo.CurrencyNegativePattern para la cultura.

Sólo clonar el cultivo original:

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

y luego

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

debería darle resultado deseado. Esto debe conseguir que:

123,99 KR

+0

Sí que funciona! Gracias Alex. Solo para que yo entienda lo que has hecho. Todo lo que necesitaba era agregar los métodos CurrencyPositivePattern y CurrencyNegativePattern para mover el símbolo de moneda al final? – R100

+1

@ R100: sí, pero estas son las propiedades (no los métodos) de la clase 'NumberFormatInfo'. – Alex

1

tener cuidado con el CurrencyNegativePattern

Este código

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

le dará

134, 99 kr.

kr.134,99kr.-

Cambio CurrencyNegativePattern a 8

swedish.NumberFormat.CurrencyNegativePattern = 8; 

le dará

134,99 KR.

-134,99 kr.

Más información https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencynegativepattern(v=vs.110).aspx

Cuestiones relacionadas