2009-06-04 74 views
8

我正尝试使用不同于默认.Net文化(SFr。)的符号(瑞士法郎)来格式化货币(瑞士法兰克福 - 德国瑞士法郎)。问题是文化的NumberFormat是ReadOnly。如何在Readonly CultureInfo.NumberFormat上设置CurrencySymbol?

有没有一种简单的方法来解决这个问题,使用CultureInfo和NumberFormat?有什么方法可以重写CurrencySymbol?

实施例: 昏暗newCInfo作为CultureInfo的= CultureInfo.GetCultureInfo(2055) newCInfo.NumberFormat.CurrencySymbol = “CHF” MyCurrencyText.Text = x.ToString( “C”,newCInfo)

这将错误因为NumberFormat是ReadOnly,因此设置NumberFormat.CurrencySymbol。

谢谢!

回答

12

致电CloneCultureInfo,这将创建一个可变版本,然后设置货币符号。

你可能会更具体:获取NumberFormatInfo,只克隆它。它稍微更优雅,海事组织,除非你需要改变文化中的其他任何东西。

实施例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

美丽,并且简单地简单。我可能会因为想念这件事而自责。谢谢! – sugarcrum 2009-06-04 16:53:45

相关问题