货币CultureInfo

1 c#

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

有谁知道最好的方法吗?

cgr*_*eno 9

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

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

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

CultureInfo ci = new CultureInfo("en-GB");
amount.ToString("C", ci);
Run Code Online (Sandbox Code Playgroud)

将以下行添加到Web.config以在应用程序范围内更改它

<globalization uiCulture="en" culture="en-GB" />
Run Code Online (Sandbox Code Playgroud)

如果您希望将其作为每页基础,请使用以下行

<%@ Page UICulture="en" Culture="en-GB" %>
Run Code Online (Sandbox Code Playgroud)

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

CultureInfo ci = new CultureInfo("en-GB");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
Run Code Online (Sandbox Code Playgroud)

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

此外,请记住,除非需要显示的所有内容直接转换为另一个货币值以换取货币转换问题.你最好只用美元或英镑显示,直到你找到最好的方式来本地化你的应用程序.