我需要以一种文化特定的方式显示货币,我们目前只支持说英语的国家,但这可能会扩展到其他国家。我们正在快速实现这一点,所以我需要一种方法来暂时显示通用货币格式,直到我可以实现特定于文化的格式。
有人知道做这件事的最好方法吗?
发布于 2010-07-28 05:59:40
执行线程有一个CultureInfo属性附加到它上,例如"en-GB“,它是”英语-英国“或"cy-GB",代表”威尔士-英国“(前2个字符表示语言,后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)(通过C#引用CLR,因为我在其他地方没有见过它),它可以使用.ToString("C", CultureInfo.InvariantCulture)显示,它显示了一个我认为没有人会识别的小星形东西。
此外,请记住,所有这些都不能绕过货币转换问题,除非需要显示的所有内容都直接转换为值的另一个货币值。在找到本地化应用程序的最佳方法之前,最好只显示美元或英镑。
https://stackoverflow.com/questions/3348379
复制相似问题