我們的網絡應用程序(.net/C#)使用amount.ToString(「c」)格式化貨幣金額,顯示本地化到幾個不同的區域。如何更改.net Web應用程序中的默認文化設置?
我們法國的Candian用戶更喜歡所有金額都是美國格式(123,456.99與fr-CA的默認窗口方式123 456,99)。
什麼是最好的處理方式?我可以簡單地修改每個網絡服務器的窗口中fr-ca的區域設置嗎?還是我需要創建一個自定義文化?
我們的網絡應用程序(.net/C#)使用amount.ToString(「c」)格式化貨幣金額,顯示本地化到幾個不同的區域。如何更改.net Web應用程序中的默認文化設置?
我們法國的Candian用戶更喜歡所有金額都是美國格式(123,456.99與fr-CA的默認窗口方式123 456,99)。
什麼是最好的處理方式?我可以簡單地修改每個網絡服務器的窗口中fr-ca的區域設置嗎?還是我需要創建一個自定義文化?
你可能要考慮創建自定義文化,提供您需要的格式化規則組合。 There is an article at MSDN describing how to do it。
總之,您創建一個CultureAndRegionInfoBuilder
對象,定義名稱,設置屬性並註冊它。檢查文章的細節。
您可以修改當前的文化,像這樣:
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA")
你可以從你的web.config拉值,確保萬無一失。
編輯:
好的,對不起,我誤解了。
這可能會實現:
decimal d = 1232343456.99M;
CultureInfo USFormat = new CultureInfo("en-US");
Console.Out.WriteLine(d.ToString(USFormat));
這應該允許您只使用USFormat當你輸出數字瓦爾斯。
我將創建一個用戶設置的應用程序,將持有的CultureInfo爲每個用戶,並創建一個表單,允許每個用戶編輯屬性....
對,我們目前正在這樣做,但是我們的fr-CA用戶不希望爲該文化設置標準格式,他們只希望美國格式化爲美元金額。所以,它就像一個混合文化。 – ericvg 2009-07-22 18:51:35
,如果當前的文化是fr-CA,我寧願不需要破解代碼以僅顯示美元金額的美國格式。 – ericvg 2009-07-22 18:52:42