我需要以特定文化的方式展示货币,我们目前只支持讲英语的国家,但这可能会扩展到其他国家。我们正在快速实现这一点,所以我需要一种显示通用货币格式的方法,直到我可以实现特定的文化。
有谁知道最好的方法吗?
答案 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)
显示一个小星星的东西,我不要以为任何人都会认出来。
另外,请记住,除非需要显示的所有内容直接转换为另一个值的货币值,否则这些都不会解决货币转换问题。你最好只用美元或英镑显示,直到你找到最好的方式来本地化你的应用程序。