2009-06-04 11 views
8

Próbuję sformatować walutę (Swiss Frank - de-CH) z symbolem (CHF), który różni się od domyślnej kultury .Net (SFr.). Problem polega na tym, że NumberFormat dla kultury jest ReadOnly.Jak ustawić CurrencySymbol na Readonly CultureInfo.NumberFormat?

Czy istnieje prosty sposób rozwiązania tego problemu za pomocą funkcji CultureInfo i NumberFormat? Czy jest jakiś sposób, aby zastąpić CurrencySymbol?

przykład: Dim newCInfo jako CultureInfo = CultureInfo.GetCultureInfo (2055) newCInfo.NumberFormat.CurrencySymbol = "CHF" MyCurrencyText.Text = x.ToString ("C", newCInfo)

Będzie błędów przy ustawianiu NumberFormat.CurrencySymbol, ponieważ NumberFormat jest ReadOnly.

Dzięki!

Odpowiedz

12

Zadzwoń pod na CultureInfo, który utworzy zmienną wersję, a następnie ustaw symbol waluty.

Możesz być bardziej konkretny: pobrać NumberFormatInfo i tylko to sklonować. Jest nieco bardziej elegancki, IMO, chyba że musisz zmienić cokolwiek innego w kulturze.

Przykład C#:

using System; 

using System.Globalization; 

class Test 
{ 
    static void Main() 
    { 
     CultureInfo original = CultureInfo.GetCultureInfo(2055); 
     NumberFormatInfo mutableNfi = (NumberFormatInfo) original.NumberFormat.Clone(); 
     mutableNfi.CurrencySymbol = "X"; 
     Console.WriteLine(50.ToString("C", mutableNfi)); 
    } 
} 
+0

Pi i tylko proste. Mógłbym siebie kopnąć za to, że tęsknię. Dzięki! – sugarcrum

Powiązane problemy