货币CultureInfo

时间:2010-07-27 21:58:04

标签: c#

我需要以特定文化的方式展示货币,我们目前只支持讲英语的国家,但这可能会扩展到其他国家。我们正在快速实现这一点,所以我需要一种显示通用货币格式的方法,直到我可以实现特定的文化。

有谁知道最好的方法吗?

1 个答案:

答案 0 :(得分:9)

Executing Thread附有一个CultureInfo属性,例如“en-GB”,即“English-Great Britain”或“cy-GB”,代表“Welsh- Great Britian”(前2个字符代表语言)第二个国家)。所以当你打电话时

double amount = 2.00;
amount.ToString("C")//Without a culture argument you are 
                    //actually passing the CultureInfo 

因此,要将特定的CultureInfo添加到字符串,您只需提供一个新的CultureInfo并将其作为第二个参数添加到ToString中,如下所示:

CultureInfo ci = new CultureInfo("en-GB");
amount.ToString("C", ci);

将以下行添加到Web.config以将其更改为应用程序范围

<globalization uiCulture="en" culture="en-GB" />

如果您希望将其作为每页基础

,则使用以下行
<%@ Page UICulture="en" Culture="en-GB" %>

或者改变执行线程上的文化

CultureInfo ci = new CultureInfo("en-GB");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;

显示货币的国际方式是(U + 00A4)(参考CLR通过C#,因为我还没有在其他任何地方看到它),可以使用。ToString("C", CultureInfo.InvariantCulture)显示一个小星星的东西,我不要以为任何人都会认出来。

另外,请记住,除非需要显示的所有内容直接转换为另一个值的货币值,否则这些都不会解决货币转换问题。你最好只用美元或英镑显示,直到你找到最好的方式来本地化你的应用程序。