我们的网络应用程序(.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